使用MongoDB进行Hibernate

adw*_*dwk 41 spring hibernate mongodb hibernate-ogm

我正在寻找显示如何将MongoDB与Hibernate集成的资源(最好是从春季开始),以便我可以在RDBMS和NoSql替代方案之间切换:有没有人有这方面的经验?

Jar*_*red 68

你不能轻易做到这一点.Hibernate的目的是将Java Objects映射到关系数据库.虽然Hibernate抽象了很多细节,但您仍然需要了解关系数据库如何与外键和主键之类的东西一起工作,以及您运行的查询的性能影响.MongoDB需要一种完全不同的方式来设计数据库,而不是关注对象而不是列和表.虽然你可以为MongoDB创建一个Hibernate方言,创建一个可以在关系数据库和NoSql数据库上工作的设计,但是会给你一个在两者上都运行不佳的设计.

  • 请看看Hibernate OGM.它仍然年轻,但他们有一些有趣的东西即将到来. (7认同)

jac*_*des 32

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


Isr*_*nov 22

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

你需要以下内容:

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

这是代码的具体示例:use-spring-and-hibernate-with-mongodb


小智 5

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

有关更多详细信息,请访问http://hibernate.org/ogm/