Hibernate with MongoDB

我与影子孤独终老i 提交于 2019-11-27 09:25:43

问题


I'm looking for resources showing how to integrate MongoDB with Hibernate (preferably from within spring) so that I can switch between a RDBMS and a NoSql alternative: does anyone have experience doing this?


回答1:


You can't easily do this. The point of Hibernate is to map Java Objects to a relational database. Although Hibernate abstracts a lot of details away you still need to understand how relational databases work with things such as foreign and primary keys, and the performance implications of queries you run. MongoDB requires an entire different way of designing your database focusing on objects instead of columns and tables. while you may be able to create a Hibernate dialect for MongoDB creating a design that would work on both a relational database and a NoSql database will give you a design that works poorly on both.




回答2:


What about Hibernate OGM? It provides JPA for No-SQL databases.




回答3:


Migration would be easier if you use Spring MongoTemplate (similar to HibernateTemplate).
Among its features is support for JPA annotations (although, I'm not sure to what extent).
See more: http://www.springsource.org/spring-data/mongodb

You'll need the following:

  1. Add spring-data-mongodb JAR to your project (available in maven central).
  2. Add mongo-java-driver JAR to your project (available in maven central).
  3. Use the provided MongoTemplate class in a similar manner to HibernateTemplate. E.g.: mongoTemplate.findById(id, MyClass.class);
    mongoTemplate.insert(myObject);

Here's a concrete example with code: use-spring-and-hibernate-with-mongodb




回答4:


There is nice work done earlier as:

  • 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

refer to these links. it will be helpful to you.




回答5:


If you are using Java then you can use Hibernate OGM it provides Java Persistence support for NoSQL databases.

For more details visit http://hibernate.org/ogm/




回答6:


There is also kundera, which uses JPA-annotations to read/write your object from/to a mongodb. If you ara familiar with hibernate, it should be quite straightformard to use.

I recently tried Morphia, which takes the same approach, but with its own annotations. It works fine




回答7:


May this blog helps: http://drorbr.blogspot.com/2010/02/migrating-springhibernate-application.html Here Dror Bereznitsky describes nicely how to integrate a sping/hibernate based solution with mongodb.




回答8:


For the sake of completeness, PlayORM also supports MongoDB now. PlayORM is an object NoSQL mapping solution so you can write POJO’s and let it deal with all the details of marshalling/unmarshalling to MongoDB. Visit its documentation here




回答9:


Well just to give you an example, I am doing somehting simmilar. In ColdFusion, Hibernate is integrated and in order to save your Hibernate Object, you hvae to do EntitySave(Obj). However what we have done is build the Orm object, and then use a mongoDB Coldfusion component and just save the object by going mongo.Save(obj,collectionName).




回答10:


I think Hibernate provides desired functionality. Take a look at this, found on their official website: Mixing several NoSQL datastores in one application, e.g. use Neo4j for your friendship graph and MongoDB for your blog posts. Or mix NoSQL and relational databases.

reference



来源:https://stackoverflow.com/questions/2153195/hibernate-with-mongodb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!