使用 MongoDB 进行休眠
-
23-09-2019 - |
题
我正在寻找展示如何将 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
您将需要以下内容:
- 将Spring-Data-MongoDB Jar添加到您的项目(可在Maven Central中找到)。
- 将Mongo-Java-Driver Jar添加到您的项目(可在Maven Central中找到)。
- 以与HibernateTemplate相似的方式使用提供的蒙古特板类。例如。:
mongoTemplate.findById(id, MyClass.class);
mongoTemplate.insert(myObject);
这是带有代码的具体示例: 使用 spring 和 hibernate 与 mongodb
如果您使用的是Java,那么你可以使用的Hibernate OGM 提供Java持久性支持的的NoSQL 数据库。
五月博客帮助: http://drorbr.blogspot.com /2010/02/migrating-springhibernate-application.html 这里德罗尔Bereznitsky很好地描述了如何集成一个消费满/休眠与mongodb的基于溶液。
也只是给你一个例子,我做服用点simmilar。在ColdFusion中,Hibernate的整合,为了节省你的Hibernate对象,你hvae做EntitySave(的OBJ)。但是我们所做的是建立ORM的对象,然后使用MongoDB的ColdFusion组件,只是保存转到mongo.Save(OBJ,集合名)的对象。
我认为Hibernate提供期望的功能。看看这个,在自己的官方网站上找到: 在一个应用中混合几种NoSQL的数据存储,例如使用的Neo4j的友谊图形和MongoDB为您的博客帖子。或混合的NoSQL和关系数据库。