46

我正在寻找展示如何将 MongoDB 与 Hibernate 集成的资源(最好是在 spring 中),以便我可以在 RDBMS 和 NoSql 替代方案之间切换:有人有这样做的经验吗?

4

10 回答 10

72

你不能轻易做到这一点。Hibernate 的重点是将 Java 对象映射到关系数据库。尽管 Hibernate 抽象了很多细节,但您仍然需要了解关系数据库如何处理诸如外键和主键之类的东西,以及您运行的查询对性能的影响。MongoDB 需要一种完全不同的方式来设计数据库,专注于对象而不是列和表。虽然您可能能够为 MongoDB 创建一个 Hibernate 方言,但创建一个可以在关系数据库和 NoSql 数据库上运行的设计会给您一个在两者上都运行不佳的设计。

于 2010-01-28T13:05:52.007 回答
34

休眠 OGM怎么样?它为No-SQL数据库提供 JPA 。

于 2013-01-12T12:07:16.843 回答
24

如果您使用 Spring MongoTemplate(类似于 HibernateTemplate),迁移会更容易。
它的特性之一是对 JPA 注释的支持(尽管我不确定到什么程度)。
查看更多:http ://www.springsource.org/spring-data/mongodb

您将需要以下内容:

  1. 将 spring-data-mongodb JAR 添加到您的项目中(在 maven Central 中可用)。
  2. 将 mongo-java-driver JAR 添加到您的项目中(在 maven Central 中可用)。
  3. 以与 HibernateTemplate 类似的方式使用提供的 MongoTemplate 类。例如: mongoTemplate.findById(id, MyClass.class);
    mongoTemplate.insert(myObject);

这是一个带有代码的具体示例:use-spring-and-hibernate-with-mongodb

于 2011-12-23T19:15:29.300 回答
5

如果您使用的是 Java,那么您可以使用Hibernate OGM ,它为NoSQL数据库提供 Java 持久性支持。

有关详细信息,请访问http://hibernate.org/ogm/

于 2017-02-10T11:19:51.780 回答
4

之前有很好的工作:

参考这些链接。这将对您有所帮助。

于 2013-03-14T05:18:26.957 回答
2

还有kundera,它使用 JPA 注释从/向 mongodb 读取/写入对象。如果您熟悉hibernate,那么使用起来应该很简单。

我最近尝试了 Morphia,它采用相同的方法,但有自己的注释。它工作正常

于 2012-09-12T09:30:34.923 回答
1

为了完整起见,PlayORM现在也支持 MongoDB。PlayORM 是一个对象 NoSQL 映射解决方案,因此您可以编写 POJO 并让它处理编组/解组到 MongoDB 的所有细节。在此处访问其文档

于 2013-09-16T08:18:01.973 回答
1

愿此博客有所帮助:http : //drorbr.blogspot.com/2010/02/migrating-springhibernate-application.html Dror Bereznitsky 在这里很好地描述了如何将基于 sping/hibernate 的解决方案与 mongodb 集成。

于 2011-08-15T05:16:45.980 回答
0

好吧,只是给你一个例子,我正在做一些类似的事情。在 ColdFusion 中,集成了 Hibernate,为了保存您的 Hibernate 对象,您必须执行 EntitySave(Obj)。然而,我们所做的是构建 Orm 对象,然后使用 mongoDB Coldfusion 组件并通过 mongo.Save(obj,collectionName) 保存对象。

于 2010-10-24T21:56:29.517 回答
0

我认为 Hibernate 提供了所需的功能。看看这个,在他们的官方网站上找到的:在一个应用程序中混合多个 NoSQL 数据存储,例如使用 Neo4j 来制作你的友谊图,使用 MongoDB 来制作你的博客文章。或者混合使用 NoSQL 和关系数据库。

参考

于 2019-05-09T08:27:04.157 回答