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
您将需要以下内容:
- 将spring-data-mongodb JAR添加到您的项目中(可在maven中心find)。
- 将mongo-java-driver JAR添加到您的项目中(可在maven中心find)。
- 以类似于HibernateTemplate的方式使用提供的MongoTemplate类。 例如:
mongoTemplate.findById(id, MyClass.class);
mongoTemplate.insert(myObject);
下面是一个具体的代码示例: use-spring-and-hibernate-with-mongodb
早些时候完成了很好的工作:
- http://pragmaticintegrator.wordpress.com/2011/07/14/use-spring-and-hibernate-with-mongodb/
- http://pragmaticintegrator.wordpress.com/2011/07/27/unit-test-your-springhibernate-and-mongodb-setup/#comments
请参阅这些链接。 这对你有帮助。
还有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)来保存对象。