在企业解决方案中使用 mongodb 休眠 OGM

Hibernate OGM with mongodb in an enterprise solution

我想问你,如果你有任何经验 Hibernate OGMmongodb 一样好用,它可以毫无顾虑地用于企业解决方案。换句话说 - 这种组合是否像 Hibernate ORMMySQL 一样好,是否也很容易设置?是否值得使用它 - 意味着与数据库工作的改进水平相比,设置它所需的负担水平?您会更喜欢另一个 OGM 框架还是不使用任何框架?我前段时间读到过它,但它处于这个项目的早期阶段,还没有很好地工作。感谢您的建议和经验。

(免责声明:我是 Hibernate OGM 的作者之一)

With other words - does this combination work as fine as for example Hibernate ORM with MySQL?

4.1 版本是我们认为可以在生产中使用的第一个最终版本。一般的用户体验应该与使用 classic Hibernate ORM(它仍然是您在使用 Hibernate OGM 时在后台使用的)没有太大区别。另外MongoDB方言可能是我们最努力的一种,所以它的状态很好。

但由于 Hibernate OGM 是一个相当年轻的项目,当然可能存在需要解决的错误和故障。在功能方面,有些东西尚不支持(例如辅助表、条件 API、更复杂的 JPA 查询),但在大多数类型的应用程序中你不应该真的需要它们,或者有变通方法(例如本机查询)。

and is is also that easy to set up?

是的,绝对是。该设置与将 Hibernate ORM / JPA 与 RDBMS 结合使用没有什么不同。您只使用另一个 JPA 提供程序 class (HibernateOgmPersistence) 并且需要设置一些特定于 OGM 的选项(要使用的 NoSQL 存储、主机名等)。查看 this blog post,它会引导您完成设置。对于特定于商店的设置(例如如何在文档商店中存储关联),有一个基于注释的易于使用的选项系统 and/or 流畅 API.

[Is it worth the effort] to set it up compared to the level of improvement of the work with the database?

我不认为对此有一个普遍的答案。在许多情况下,像 Hibernate ORM/OGM 这样的对象映射器很棒,在其他情况下,使用普通 SQL 或 NoSQL APIs 可能是更好的选择。这取决于您的用例及其具体要求。一般来说,如果有一个定义的领域模型你想持久化,OxMs 工作得很好,导航它的关联等。

Would you prefer another OGM framework

我显然有偏见,但我要说的是,使用 Hibernate OGM 可以让您

  • 受益于 JPA/Hibernate 周围存在的生态系统,无论是与其他库集成,例如 Hibernate Validator 或 Hibernate Search(或您内部开发的基于 Hibernate 的 API) 或工具,例如发出 JPA 实体的建模工具。

  • 使用相同的 API 与不同的 NoSQL 后端一起工作。因此,如果您有可能需要集成另一个 NoSQL 存储(例如 Neo4j 到 运行 图形查询)或 RDMBS,那么 Hibernate OGM 将允许您轻松地做到这一点。

I read about it some time ago, but it was in the early stages of this project

去年在 Hibernate OGM 中投入了大量工作,因此我的建议绝对是试用它并在原型中查看它如何满足您的要求。

如果您有任何功能要求或问题,请告诉我们,我们会尽力为您效劳。