2016-10-03 97 views

回答

0

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世界:例如交易。虽然您可以访问事务分区方法,但您将无法在本地不支持事务的数据存储上回滚(在这种情况下,事务将用于对操作进行分组,并尝试优化对db的调用次数) 。另外,如果你的数据集本质上是非领域模型为中心的,那么Hibernate OGM不适合你。