0

谁能告诉我使用 MongoDB Annotations 还是使用 Hibernate 实现 MongoDB 将是一致的。

4

1 回答 1

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 不适合您。

于 2016-11-11T11:44:59.377 回答