我们越来越接近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语法进行更多类型的查询:findOne、findAndModify、insert、remove 和 update。
以下是一个示例,展示如何使用这些功能
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查询支持 的更多详细信息,请参阅文档。
在哪里可以获取它?
您可以通过以下坐标使用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 下载包含所有二进制文件、源代码和文档的存档。