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

有帮助吗?

解决方案

您不能轻易做到这一点。休眠的一点是Java对象映射到关系数据库。虽然Hibernate的抽象很多细节远离你还需要了解数据库如何与关系的东西,如外国和主键,而且你运行的查询的性能影响。 MongoDB的要求设计数据库重点对象,而不是列和表的整个不同的方式。同时,您可以创建一个Hibernate方言MongoDB的创造设计,将两者关系数据库和NoSQL数据库会给你两个效果很差设计上工作。

其他提示

了解的Hibernate OGM 什么?它提供了用于JPA 否-SQL 数据库。

如果使用 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.findById(id, MyClass.class);
    mongoTemplate.insert(myObject);

这是带有代码的具体示例: 使用 spring 和 hibernate 与 mongodb

还有昆德拉,该使用JPA-注解来读/写从您的对象/到的mongodb。如果ARA熟悉Hibernate的,它应该是相当straightformard使用。

我最近尝试吗啡,其采用相同的方法,但有自己的注解。 能正常工作

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

详情访问 http://hibernate.org/ogm/

五月博客帮助: http://drorbr.blogspot.com /2010/02/migrating-springhibernate-application.html 这里德罗尔Bereznitsky很好地描述了如何集成一个消费满/休眠与mongodb的基于溶液。

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

也只是给你一个例子,我做服用点simmilar。在ColdFusion中,Hibernate的整合,为了节省你的Hibernate对象,你hvae做EntitySave(的OBJ)。但是我们所做的是建立ORM的对象,然后使用MongoDB的ColdFusion组件,只是保存转到mongo.Save(OBJ,集合名)的对象。

我认为Hibernate提供期望的功能。看看这个,在自己的官方网站上找到: 在一个应用中混合几种NoSQL的数据存储,例如使用的Neo4j的友谊图形和MongoDB为您的博客帖子。或混合的NoSQL和关系数据库。

参考

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top