我刚接触数据库,所以我的问题可能很幼稚。目前,我的项目使用Spring Data和JPA,底层使用的是Hibernate和MySQL。是否可以切换到MongoDB?当我谷歌搜索“jpa MongoDB”时,顶部链接显示了一些有趣的内容(DataNucleus JPA and MongoDB)。这个链接:MongoDB docs 显示Java驱动程序符合JPA标准,因此替换数据库实现应该很简单吧?
我刚接触数据库,所以我的问题可能很幼稚。目前,我的项目使用Spring Data和JPA,底层使用的是Hibernate和MySQL。是否可以切换到MongoDB?当我谷歌搜索“jpa MongoDB”时,顶部链接显示了一些有趣的内容(DataNucleus JPA and MongoDB)。这个链接:MongoDB docs 显示Java驱动程序符合JPA标准,因此替换数据库实现应该很简单吧?
这高度取决于你对“可行性”的定义。“一般而言可行”?-是的。“相当可行”-视情况而定。“无缝工作”-则不完全如此。
JPA是一个固有的关系API,因此要准备好遇到以下方面:
虽然我可以看到将熟悉的API放在新东西上以获得某种类型的知识转移的动机,但最终认为如果目标空间不支持关键方面(例如事务),这是一种谬论。到目前为止,我看到的所有方法最终都会花费大量文档来记录在JPA和存储方面都不受支持的内容。
话虽如此,还有其他方法可以远离“一种API来统治它们全部”的方法,并积极利用NoSQL领域的多样性(想一想:一组由它们“不是”定义的技术本质上是相当多样化的)。
Spring Data 项目(声明:我是该项目的负责人)正在向上一层抽象移动,提供了一个一致的仓库编程模型,而不是一个统一的 API。这仍然允许支持特定存储功能,但使用通用方法保持不变。
因此,我建议在此处转移到专用的 Spring Data MongoDB 项目。
只需花费一些力气,您就可以轻松地将它们替换掉。以下是Spring.io网站上的示例指南:访问MongoDB数据
您将使用Mongo存储库而不是JPA存储库...这个示例应该足以给您一个想法。