1

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

4

1 回答 1

3

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

换句话说 - 这种组合是否像 Hibernate ORM 和 MySQL 一样好用?

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

但是由于 Hibernate OGM 是一个相当年轻的项目,当然可能存在需要解决的错误和故障。在功能方面,有些东西还不支持(例如辅助表、标准 API、更复杂的 JPA 查询),但您要么在大多数类型的应用程序中真的不需要这些东西,要么有解决方法(例如本机查询) .

而且设置起来也那么容易吗?

是的,一点没错。该设置与使用带有 RDBMS 的 Hibernate ORM / JPA 没有什么不同。您只使用另一个 JPA 提供程序类 ( HibernateOgmPersistence) 并且需要设置一些特定于 OGM 的选项(要使用的 NoSQL 存储、主机名等)。查看这篇博文,它将引导您完成设置。对于特定于存储的设置(例如,如何在文档存储中存储关联),有一个基于注释和/或流式 API 的易于使用的选项系统。

[值得努力] 设置它与数据库工作的改进水平相比?

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

您是否更喜欢另一个 OGM 框架

我显然有偏见,但让我说使用 Hibernate OGM 可以让你

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

  • 使用相同的 API 处理不同的 NoSQL 后端。因此,如果您有可能需要集成另一个 NoSQL 存储(例如 Neo4j 来运行图形查询)或 RDMBS,那么 Hibernate OGM 将允许您轻松完成。

我前段时间读过它,但它处于该项目的早期阶段

去年在 Hibernate OGM 中投入了大量工作,所以我的建议绝对是尝试一下并在原型中看看它是如何满足您的要求的。

如果您有任何功能请求或问题,请告诉我们,我们会看看我们能为您做些什么。

于 2015-01-22T09:19:48.460 回答