Hibernate团队非常高兴地宣布Hibernate OGM 4.1的另一个Beta版本发布!
在查询执行和Neo4j方言方面取得了一些进展。我们还提供了一种所谓的《物料清单》POM, Maven用户会喜欢这个(详情见下文)。
与Maven、Gradle等一起使用的GAV坐标是
- org.hibernate.ogm:hibernate-ogm-core:4.1.0.Beta6 用于OGM引擎和
- org.hibernate.ogm:hibernate-ogm-<%DATASTORE%>:4.1.0.Beta6,具体取决于您想使用的后端。
或者您可以从SourceForge获取包含Hibernate OGM及其所有依赖项的发布包。
请注意,此新版本需要Hibernate ORM 4.3.6.Final或更高版本。
查询改进
我们对与ORM查询执行机器的集成进行了重大改进。这使JP-QL和原生查询领域取得了很多改进。
其中之一是在不使用Hibernate Search进行查询的后端(Neo4j和MongoDB)上支持多态查询。这意味着指向超类的查询将返回任何映射子类的实例。
此外,Hibernate OGM现在在自动刷新方面表现出与Hibernate ORM相同的行为。也就是说,如果您提交一个查询,所有对受影响类型实体的挂起更改都将刷新到数据存储中,以确保查询不会返回任何过时数据。虽然这在支持完整事务语义的存储(即Neo4j)上运行良好,但在具有有限或不存在回滚能力的存储上需要特别注意。有关详细信息,请参阅参考指南。
此外,我们还采取了措施来缓存从JP-QL查询派生的原生查询。请注意,这需要Hibernate ORM 4.3.6.Final或更高版本。通常,我们努力与完整的次要版本系列(4.3.x)保持兼容,但在此情况下,我们需要使用仅在4.3.6中引入的一些高级SPI。我们提供的WildFly模块ZIP包含一个更新的ORM模块。这将在现有的ORM模块旁边添加,而现有的ORM模块保持不变。
Neo4j中的更自然关联映射
作为我们持续进行的Neo4j方言工作的一部分,关联最终映射到您期望的关系。以前关联上存在冗余属性,现在已删除。仅在关系上存储实际的关联属性,例如有序列表中元素的顺序。以下是一个示例:

这里有一个实体父亲有一个有序的儿童实体集合,每个儿童节点通过关系映射。属性birthorder(名称通过@OrderColumn指定)存储在关系的属性上,正如它自然而然地有意义。
顺便说一句,我们已经更新到Neo4j 2.1.3。
简化版本管理
对于Maven用户来说,另一个重要的使用改进是以我们新的物料清单POM(BOM)的形式出现的。此POM定义了一个Hibernate OGM模块及其依赖项(例如Hibernate ORM、Hibernate Search或不同的数据存储连接器)的一组匹配版本。
您需要做的只是将此BOM添加到项目POM的dependencyManagement块中,使用特殊的import作用域
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.hibernate.ogm</groupId>
<artifactId>hibernate-ogm-bom</artifactId>
<version>4.1.0.Beta6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
然后您可以声明对Hibernate OGM或任何相关模块的依赖关系,而无需指定版本,您将自动从BOM中获得版本
<dependencies>
<dependency>
<groupId>org.hibernate.ogm</groupId>
<artifactId>hibernate-ogm-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search-orm</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
</dependency>
...
</dependencies>
要更新到Hibernate OGM的新版本,只需更新BOM中引用的版本即可。这将反过来为您提供所需的任何依赖项的更新版本。
您的反馈很重要
随着我们即将推出Hibernate OGM 4.1的最终版本,您的反馈比以往任何时候都更重要!您可以使用以下工具来联系