在企业解决方案中使用mongodb进行Hibernate OGM

时间:2015-01-20 14:08:38

标签: java mongodb hibernate hibernate-ogm nosql

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

1 个答案:

答案 0 :(得分:3)

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

  

换句话说 - 这种组合是否与例如Hibernate ORM与MySQL一样好用?

4.1版本是我们考​​虑准备在生产中使用的第一个决赛。一般的用户体验应该与使用经典的Hibernate ORM(在使用Hibernate OGM时仍然是您使用的内容)相差无几。 MongoDB方言也许是我们最努力的方式,所以它的形状很好。

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

  

并且也很容易设置?

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

  

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

我认为没有一般的答案。在许多情况下,像Hibernate ORM / OGM这样的对象映射器很棒,在其他情况下使用普通SQL或NoSQL API可能是更好的选择。这取决于您的用例及其特定要求。一般情况下,如果存在要保留的已定义域模型,导航其关联等,则OxM可以正常工作。

  

您是否更喜欢其他OGM框架

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

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

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

  

我前段时间读过这篇文章,但它还处于这个项目的早期阶段

去年Hibernate OGM已经做了很多工作,所以我的建议一定是尝试一下,看一下原型,或者说它是如何满足你的需求的。

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