我正在寻找显示如何将MongoDB与Hibernate集成的资源(最好是从春季开始),以便我可以在RDBMS和NoSql替代方案之间切换:有没有人有这方面的经验?
你不能轻易做到这一点.Hibernate的目的是将Java Objects映射到关系数据库.虽然Hibernate抽象了很多细节,但您仍然需要了解关系数据库如何与外键和主键之类的东西一起工作,以及您运行的查询的性能影响.MongoDB需要一种完全不同的方式来设计数据库,而不是关注对象而不是列和表.虽然你可以为MongoDB创建一个Hibernate方言,创建一个可以在关系数据库和NoSql数据库上工作的设计,但是会给你一个在两者上都运行不佳的设计.
那么Hibernate OGM呢?它为No-SQL数据库提供JPA .
如果使用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类.例如:
mongoTemplate.findById(id, MyClass.class);
mongoTemplate.insert(myObject);
这是代码的具体示例:use-spring-and-hibernate-with-mongodb