Hibernate Spring MVC与Mongo DB交互的ORM选择

Hibernate Spring MVC与Mongo DB交互的ORM选择,hibernate,mongodb,spring-mvc,morphia,Hibernate,Mongodb,Spring Mvc,Morphia,我有一堆XML文件,我已将其解析为离散字段。我编写了一个Spring MVC应用程序,显示解析后的字段。不,我需要一个ORM,它可以将这些字段发送到MongoDB,并在Spring MVC应用程序端查询数据库。我浏览了ORM,但想听听您对使用哪种ORM将SpringMVC应用程序与MongoDB集成的看法,是Morphia还是Java Mongo驱动程序,还是Hibernate可以与MongoDB一起工作 谢谢我已经在生产环境中使用了Morphia,如果您有一个基于maven的构建,那么就很容易

我有一堆XML文件,我已将其解析为离散字段。我编写了一个Spring MVC应用程序,显示解析后的字段。不,我需要一个ORM,它可以将这些字段发送到MongoDB,并在Spring MVC应用程序端查询数据库。我浏览了ORM,但想听听您对使用哪种ORM将SpringMVC应用程序与MongoDB集成的看法,是Morphia还是Java Mongo驱动程序,还是Hibernate可以与MongoDB一起工作


谢谢

我已经在生产环境中使用了Morphia,如果您有一个基于maven的构建,那么就很容易包含它。只需将此代码段添加到您想要的构建中:

然而,在使用它之后,我会说,如果我可以再做一次,那么我要么使用Spring数据(支持Mongo),要么使用良好的基本DAO模式直接使用本机Mongo驱动程序

我的理由如下: 1) Morphia的发育不如以前那么活跃。 2) 一开始,O/R映射器很不错,但是你会遇到很多你希望拥有的新特性。例如,一种常见的做法是,当您的数据模型发生更改时,您希望在使用新字段读取旧行时升级旧行。使用本机驱动程序非常简单,但抽象后就不那么简单了。 3) Morphia还有一个已知的问题(可能是设计决策),它会将ref集合与主父级一起拉入。例如,对于拥有邮箱的用户对象,它会提取其所有邮件,并导致许多性能问题。您可以通过延迟加载模式来解决这个问题,但从长远来看,这会带来更多麻烦

我的建议: 1) 如果您必须使用O/R映射器,并且您已经在使用spring,那么为什么不使用spring data呢?spring data拥有一个更大的开发人员社区(和一家大公司)。 2) 如果您正在构建一个更大的项目,请使用本机驱动程序

对于较小的项目来说,Morphia仍然是一个很好的选择,并且确实带来了很好的开发效率收益。只要记住它的缺点


希望这能有所帮助。

我在生产环境中使用过Morphia,如果您有基于maven的构建,那么它很容易包含在内。只需将此代码段添加到您想要的构建中:

然而,在使用它之后,我会说,如果我可以再做一次,那么我要么使用Spring数据(支持Mongo),要么使用良好的基本DAO模式直接使用本机Mongo驱动程序

我的理由如下: 1) Morphia的发育不如以前那么活跃。 2) 一开始,O/R映射器很不错,但是你会遇到很多你希望拥有的新特性。例如,一种常见的做法是,当您的数据模型发生更改时,您希望在使用新字段读取旧行时升级旧行。使用本机驱动程序非常简单,但抽象后就不那么简单了。 3) Morphia还有一个已知的问题(可能是设计决策),它会将ref集合与主父级一起拉入。例如,对于拥有邮箱的用户对象,它会提取其所有邮件,并导致许多性能问题。您可以通过延迟加载模式来解决这个问题,但从长远来看,这会带来更多麻烦

我的建议: 1) 如果您必须使用O/R映射器,并且您已经在使用spring,那么为什么不使用spring data呢?spring data拥有一个更大的开发人员社区(和一家大公司)。 2) 如果您正在构建一个更大的项目,请使用本机驱动程序

对于较小的项目来说,Morphia仍然是一个很好的选择,并且确实带来了很好的开发效率收益。只要记住它的缺点


希望能有所帮助。

如果您已经在春季,这是更好的选择

如果您已经在春季,这是更好的选择

他似乎是一位受人尊敬的地图绘制者。还要看一下比较MongoDB的Java ORM。非常感谢您的回复,但是当我导入Morphia.jar文件并通过构建路径将其添加到我的路径时,注释无法识别。您能给我建议一个解决方案吗?我不太确定。我曾将MongoDB与C#结合使用,但从未尝试过用Java实现。如果你在这里发布另一个问题,并附上屏幕截图或异常信息,也许有人可以提供帮助!他似乎是一位受人尊敬的地图绘制者。还要看一下比较MongoDB的Java ORM。非常感谢您的回复,但是当我导入Morphia.jar文件并通过构建路径将其添加到我的路径时,注释无法识别。您能给我建议一个解决方案吗?我不太确定。我曾将MongoDB与C#结合使用,但从未尝试过用Java实现。如果你在这里发布另一个问题,并附上屏幕截图或异常信息,也许有人可以提供帮助!另外,如果你打算使用Morphia,那么上面发布的maven pom添加不起作用,请告诉我。非常感谢Prasith。事实上,当你在场时,我听取了你关于软件系统设计的建议,现在我正处于开发阶段。是的,依赖项以及导出的JAR都起作用了。现在我将编写代码,如果我会有问题的,我会把我的查询贴在这里。再次感谢Prasith。如果你打算使用Morphia,上面贴的maven pom添加不起作用,请告诉我。非常感谢Prasith。事实上,当你在的时候,我听取了你关于软件系统设计的建议,现在我正处于开发阶段。是的,依赖关系和导出的JAR一起工作。现在我将编写代码,如果我有问题,我将自己在这里发布我的查询。再次感谢Prasith。