在上一版本发布一个月后,我们很高兴地宣布新的 Hibernate OGM 4.0.0.Beta4。
初始嵌入式Neo4j集成
Hibernate OGM 现在可以与 Neo4j(一个完全事务性的属性图数据库)一起工作。
图数据库将数据表示为相互连接的节点系统,在需要存储社交网络中人与人之间的关系等信息时表现良好。此外,在属性图中,您还可以向图元素添加属性。
Hibernate OGM 将实体映射为节点,其中实体的属性成为节点的属性。目前我们在将节点转换为实体时添加了一些额外的属性,但我们计划使用最新Neo4j版本中添加的标签机制来替换它们。
两个节点之间的关系表示两个实体之间的关联。目前双向关联需要两个关系,但我们计划进行更改,因为Neo4j可以双向导航关系。
与Neo4j的集成是实验性的,但我们计划很快对其进行改进。请告诉我们您的想法或帮助我们改进它。
MongoDB原生查询支持
在之前的版本中缺失的一个功能是使用您选择的数据库的查询语言检索管理实体。如果查询语言支持JP-QL或目前未实现的特定功能,这将特别有用。
我们开始着手这项功能,现在可以使用org.hibernate.Session或javax.persistence.EntityManager.
来执行MongoDB查询
List<OscarWildePoem> result = session
.createSQLQuery( "{ $query : { author : 'Oscar Wilde' }, $orderby : { name : 1 } }" )
.addEntity( OscarWildePoem.TABLE_NAME, OscarWildePoem.class )
.list();
让我们看看使用会话的示例
List<OscarWildePoem> results = entityManager
.createNativeQuery( "{ $query : { author : 'Oscar Wilde' }, $orderby : { name : 1 } }", OscarWildePoem.class )
.getResultList();
和实体管理器的示例
如何尝试
非常感谢所有为这次发布做出贡献的贡献者,无论是通过拉取请求、错误报告还是在论坛上的反馈。