Hibernate OGM 已不再维护

我们越来越接近Hibernate OGM 5的最终发布。

此版本包括对Redis集群的支持和一个新的方言来在Redis哈希中存储数据;java.util.UUID现在在Apache Cassandra中使用本地uuid类型;现在支持更多使用MongoDB CLI语法的查询。

此版本也与Hibernate 5系列保持一致,它将与Hibernate ORM 5、Hibernate Search 5.5和最新的WildFly 10一起工作。请查看上一篇文章了解更多详情。

迁移说明 包含有关从Hibernate OGM的早期版本迁移到5.x的更多信息。

查看变更日志以获取此版本包含的所有内容的列表。

Redis集群支持

启用对Redis集群的支持只需将以下属性设置为true

hibernate.ogm.redis.cluster = true

当此属性启用时,数据将根据每个实体的键的哈希槽上的Redis键分布模型存储在Redis集群节点之间。

请参阅文档以获取有关Hibernate OGM中Redis配置选项的更多详细信息。

Redis哈希映射

使用此映射时,数据使用Redis哈希中的键值对存储。这种方法的好处是允许部分更新。

您可以通过设置以下属性来启用此方言

hibernate.ogm.datastore.grid_dialect = org.hibernate.ogm.datastore.redis.RedisHashDialect

这将映射以下实体

@Entity
public class News {

    @Id
    private String id;

    @Version
    @Column(name="version")
    private int version;

    private String title;

    private String description;

    //getters, setters ...
}

具有以下属性

version     = 1
title       = On the merits of NoSQL
description = This paper discuss why NoSQL will save the world for good

衷心感谢社区成员 Mark Paluch,他对Redis领域的这两项重大改进负有责任。请注意,这些功能目前都是实验性的。

额外的MongoDB原生CLI查询支持

感谢 Thorsten Möller 的贡献,Hibernate OGM 现在支持使用MongoDB CLI语法进行更多类型的查询:findOnefindAndModifyinsertremoveupdate

以下是一个示例,展示如何使用这些功能

OgmSession session = ...

String nativeQuery = "db.OscarWilde.findAndModify({"
        + "'query': {'author': 'oscarwilde'}, "
        + "'update': { '$set': { 'author': 'Oscar Wilder' } }, "
        + "'new': true "
        + "})";

Query query = session.createNativeQuery( nativeQuery ).addEntity( OscarWilde.class );
List<OscarWilde> result = query.list();

有关实验性 原生MongoDB查询支持 的更多详细信息,请参阅文档。

接下来是什么?

我们正在开发Neo4j远程方言,并致力于发布Hibernate OGM 5的稳定版本。

在哪里可以获取它?

您可以通过以下坐标使用Maven等工具获取Hibernate OGM 5.0.0.CR1:

  • org.hibernate.ogm:hibernate-ogm-core:5.0.0.CR1 用于Hibernate OGM核心模块

  • org.hibernate.ogm:hibernate-ogm-<%BACKEND%>:5.0.0.CR1 用于您想要使用的NoSQL后端,其中 _<%BACKEND%> 是 "mongodb"、"redis"、"neo4j" 等。

或者,您可以从 SourceForge 下载包含所有二进制文件、源代码和文档的存档。

如何联系我?

您可以通过以下渠道联系我:

我们期待您的反馈!


回到顶部