我想问你,如果你有Hibernate OGM
与mongodb
一样好的经验,它可以毫无后顾之忧地用在企业解决方案中。换句话说 - 这种组合是否与例如Hibernate ORM
MySQL
一样好,并且也很容易设置?是否值得使用它 - 意味着与数据库工作的改进水平相比,设置它所需的能力水平?您是否更喜欢其他OGM框架,甚至不使用任何框架?我前段时间读过这篇文章,但它还处于这个项目的早期阶段并且还没有成功。感谢您的建议和经验。
答案 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已经做了很多工作,所以我的建议一定是尝试一下,看一下原型,或者说它是如何满足你的需求的。
如果您有任何功能请求或问题,请告诉我们,我们会看到我们能为您做些什么。