Hibernate OGM 已不再维护

圣诞节还有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为文档做出了贡献,新增了一个章节,解释了创建新后端涉及的不同组件:如何构建数据存储支持

接下来是什么?

我们计划在下一个版本中包含的主要功能是支持Neo4j远程服务器和Redis的替代方言,该方言将值持久化到哈希字段中。

在哪里可以获取它?

您可以使用以下坐标通过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下载包含所有二进制文件、源代码和文档的存档。

一如既往,我们期待您的反馈。通过以下渠道获取变更日志中的详细信息。通过以下渠道联系


返回顶部