使用Annotations和Hibernate OGM配置MongoDB之间的区别

时间:2016-10-03 12:32:13

标签: mongodb hibernate hibernate-ogm

任何人都可以请清楚我使用MongoDB Annotations或使用Hibernate实现MongoDB是否一致。

1 个答案:

答案 0 :(得分:1)

Disclamair:我是Hibernate OGM开发人员之一,所以我会尝试为Hibernate OGM提供一些东西。

不确定你的意思是一致的,但我会尝试回答。

Hibernate OGM为NoSQL解决方案提供Java持久性(JPA)支持。它重用了Hibernate ORM的引擎,但将实体持久化到NoSQL数据存储区而不是关系数据库。

这种方法有几个好处:

  • 如果您已熟悉JPA或Hibernate ORM并且不熟悉NoSQL世界,那么在项目上启动会更容易。 Hibernate OGM已经能够根据映射应用最佳实践和优化。

  • 可移植性,您将能够从MongoDB切换到另一个数据存储区(不限于NoSQL),仅更改配置属性。如果现有应用程序使用Hibernate ORM连接到数据库,它现在也可以连接到NoSQL数据存储区。它

  • 工具,因为API与Hibernate ORM相同,您将能够重用现有工具或库。

  • 它将能够进行一些优化,例如对操作进行分组并减少对数据存储区的调用。

虽然主要目标是提供JPA实现,但您也可以执行本机查询,我们的目标是提供在需要时访问特定数据库功能的方法。

主要缺点是JPA的一些概念不容易映射到NoSQL世界:例如事务。虽然您可以访问事务划分方法,但您无法在不支持本机事务的数据存储上回滚(在这种情况下,事务将用于对操作进行分组并尝试优化调用次数)到数据库)。

此外,如果您的数据集本质上是非域模型中心的,那么Hibernate OGM不适合您。