圣诞节还有3天,我们决定发布 Hibernate OGM 5 的第一个Beta版本作为礼物!
本版本的主要新闻是支持 Cassandra 2.2 的新数据类型,正确处理 @Lob 注释,支持 post-load 事件以及 Infinispan 8。
此版本还继续将 Hibernate OGM 与 Hibernate 5 系列对齐。在上一版本中过渡到 Hibernate ORM 5 之后,我们将 Hibernate Search 更新到 5.5 版本,该版本也包含了 Apache Lucene 5 的功能。
在上一版本的发布后文章中,我们描述了在 MongoDB 和 Redis 上存储 map 类型的属性方面的改进。我们现在在 CouchDB 上也实现了相同的自然映射。
查看 Hibernate OGM 的 迁移指南 了解有关从 Hibernate OGM 早期版本迁移到 5.x 的更多信息。
Cassandra 2.2 新数据类型
利用 Cassandra 2.2 提供的新数据类型
-
date 用于使用
@Temporal(TemporalType.DATE)
映射的属性 -
time 用于使用
@Temporal(TemporalType.TIME)
映射的属性 -
tinyint 用于
java.lang.Byte
-
smallint 用于
java.lang.Short
支持 post-load 事件
多亏了 David Williams 的贡献,现在 @PostLoad 注释将支持 Hibernate OGM。
如果您不熟悉这个注解,它是JPA规范的一部分,允许指定对应生命周期事件的回调方法。
@Entity
public class Zoo {
@Id
private Integer id;
@ElementCollection
private Set<Animal> animals = new HashSet<Animal>();
private int nrOfAnimals;
...
@PostLoad
public void postLoad() {
nrOfAnimals = animals.size();
}
}
在类Zoo
的所有懒加载字段从数据源加载后,将调用postLoad()
方法,使我们能够初始化属性nrOfElement
的值。
请注意,此代码遵循JPA规范,并且可以在Hibernate ORM或任何其他兼容JPA的项目中以相同的方式使用。
如何添加对新数据存储的支持?
很高兴您提出这个问题,社区成员Mark Paluch为文档做出了贡献,新增了一个章节,解释了创建新后端涉及的不同组件:如何构建数据存储支持
在哪里可以获取它?
您可以使用以下坐标通过Maven等工具检索Hibernate OGM 5.0.0.Beta1:
-
org.hibernate.ogm:hibernate-ogm-core:5.0.0.Beta1 用于Hibernate OGM核心模块
-
org.hibernate.ogm:hibernate-ogm-<%BACKEND%>:5.0.0.Beta1 用于您想要使用的NoSQL后端,其中<%BACKEND%>是“mongodb”、“redis”、“neo4j”等之一。
或者,您可以从SourceForge下载包含所有二进制文件、源代码和文档的存档。
一如既往,我们期待您的反馈。通过以下渠道获取变更日志中的详细信息。通过以下渠道联系