hibernate与MongoDB

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

你不能轻易做到这一点。 Hibernate的目的是将Java对象映射到关系数据库。 尽pipeHibernate抽象了很多细节,但仍需要了解关系数据库如何处理外键和主键等事情,以及运行的查询对性能的影响。 MongoDB需要一种完全不同的方式来devise数据库,而不是列和表。 虽然你可能能够为MongoDB创build一个Hibernate方言,创build一个可以在关系型数据库和NoSql数据库上工作的devise,但是会给你一个在两者上都工作得不好的devise。

那么Hibernate OGM呢? 它为No-SQL数据库提供JPA。

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

您将需要以下内容:

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

下面是一个具体的代码示例: use-spring-and-hibernate-with-mongodb

还有kundera ,它使用JPA-annotations来读/写你的对象到一个mongodb。 如果你熟悉hibernate,那应该是相当直接的用法。

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

可能这个博客帮助: http ://drorbr.blogspot.com/2010/02/migrating-springhibernate-application.html这里Dror Bereznitsky很好地描述了如何整合基于sping / hibernate的解决scheme与mongodb。

查看

http://www.vizuri.com/insights/blog/2013/02/java-mongo-object-data-mappers-hibernate-ogm

好的博客系列,你可能会发现有帮助的。

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

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

欲了解更多详情,请访问http://hibernate.org/ogm/

那么只是举个例子,我正在做类似的事情。 在ColdFusion中,Hibernate是集成的,为了保存你的Hibernate对象,你需要做EntitySave(Obj)。 然而,我们所做的是构buildOrm对象,然后使用mongoDB Coldfusion组件,并通过执行mongo.Save(obj,collectionName)来保存对象。