Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将spring hibernate mysql迁移到mongodb_Java_Hibernate_Mongodb - Fatal编程技术网

Java 如何将spring hibernate mysql迁移到mongodb

Java 如何将spring hibernate mysql迁移到mongodb,java,hibernate,mongodb,Java,Hibernate,Mongodb,我正在尝试将hibernate/mysql项目迁移到mongodb。hibernate支持迁移到mongodb吗?如果是这样,ORM映射(如一对一或一对多关系)是如何转换的 Hibernate支持关系数据库,如MySQL、PostgreSQL、Oracle、DB2和SQL Server。然而,MongoDB不是一个关系数据库,它是一个文档数据库。差异相当大: 关系数据库定义表之间的关系。表由行和列组成。这些列以及它们上的任何类型或关系约束定义了所谓的模式 文档数据库定义文档集合。文档数据库不知

我正在尝试将hibernate/mysql项目迁移到mongodb。hibernate支持迁移到mongodb吗?如果是这样,ORM映射(如一对一或一对多关系)是如何转换的

Hibernate支持关系数据库,如MySQL、PostgreSQL、Oracle、DB2和SQL Server。然而,MongoDB不是一个关系数据库,它是一个文档数据库。差异相当大:

  • 关系数据库定义表之间的关系。表由行和列组成。这些列以及它们上的任何类型或关系约束定义了所谓的模式
  • 文档数据库定义文档集合。文档数据库不知道模式:每个文档都可以有不同的属性。请注意,这些不是“行”和“列”,而是“文档”和“属性”
所以,为了回答你的问题,Hibernate不支持,我认为它支持的可能性接近于零

然而,例如,Java/MongoDB也有ORM实现

然而,由于这是数据库组织的两种完全不同的观点,所以没有简单的迁移过程。至少它将包括重新思考您的数据库设计。因此,重新考虑迁移可能是值得的,看看是否真的需要迁移。最后,MongoDB不是关系数据库的替代品,因为它不是关系数据库。有关这两种数据库类型的一些讨论,请参见以下链接:

关于Hibernate OGM的更新

你也许可以用。依我看,有两个缺点:

  • Hibernate OGM目前处于测试阶段;目前还没有正式发布,上一次测试版是去年1月发布的,那是半年前的事了。这取决于你的项目是否是可接受的风险
  • Hibernate OGM为NoSQL存储(其中包括MongoDB)提供了一个JPA实现。根据您的问题,您当前使用的是Hibernate,而不是JPA。这意味着您仍然需要更改域对象以使用JPA注释而不是Hibernate注释

  • 您最好的选择应该是通过SpringDataMongoDB

    实施起来很简单


    看看那里:

    也值得看看Morphia。它基本上是Java ORM库,类似于Hibernate,但不支持JPA注释。

    您能告诉我将spring Java Hibernate迁移到spring Java mongodb项目需要遵循哪些步骤吗?感谢您发送了有价值的链接。Hibernate OGM能为迁移提供更好的解决方案吗?OGM不再是测试版了。最新的稳定版本是5.3.1(2018-03-28)。您能将Spring数据与Hibernate OGM进行比较吗?