2012-08-01 53 views
1

我有一堆XML文件,我已经解析成离散字段了。我已经写了一个Spring MVC应用程序来显示解析的字段。我不想要一个可以发送这些字段到MongoDB以及在Spring MVC应用程序端查询数据库。我浏览了ORM的内容,但想知道哪些ORM可用于将SpringMVC应用程序与MongoDB集成,无论它是Morphia还是Java Mongo Driver,或者Hibernate能够与MongoDB一起工作?选择ORM用于Spring MVC和Mongo DB之间的交互

感谢

+0

[Morphia](https://code.google.com/p/morphia/)似乎是一个广受好评的映射器。还可以看看[这篇文章](http://blog.knuthaugen.no/2010/07/comparing-mongodb-java-frameworks.html)比较MongoDB的Java ORM。 – oleksii 2012-08-01 13:38:27

+0

非常感谢您的回复,但是当我导入Morphia.jar文件并通过构建路径将其添加到我的路径中时,注释不会被识别。您可以给我一个解决方案。 – 2012-08-01 13:54:43

+0

我不太确定。我已经用C#使用MongoDB,但从来没有试过用Java来做这件事。也许如果你在这里发布另外一个问题,那么有人可以提供帮助! – oleksii 2012-08-01 15:19:59

回答

1

我用吗啡在生产环境中,它是很容易包括,如果你有一个基于Maven的构建。就在这个片段添加到您的构建它,你想:

http://code.google.com/p/morphia/wiki/Dependencies#Through_Maven

但是已经使用它,我会说,如果我能再次做到这一点,那么我会要么使用Spring数据(支持蒙戈),或直接与工作使用良好的基本DAO模式的本地Mongo Driver。

我的理由如下: 1)Morphia没有像以前那样积极发展。 2)O/R映射器在开始时非常棒,但您会遇到许多希望拥有的新功能。例如,一个常见的做法是当您的数据模型发生变化时,您希望每当使用新字段读取旧行时就升级旧行。使用本地驱动程序这非常简单,但是一旦将其抽象化,就不那么多了。 3)Morphia也有一个已知的问题(可能是设计决策),它将拉伸ref集合以及主要父元素。例如,在拥有邮箱的用户对象的情况下,它将所有消息都拉出来,并导致很多性能问题。你可以用懒惰的加载模式解决这个问题,但从长远来看,再次遇到更多麻烦。 1)如果您必须使用O/R映射器,并且您已经在春季,那么为什么不使用拥有更大的开发人员社区(以及大公司)的弹簧数据呢。 2)如果您正在使用本地驱动程序构建一个更大的项目。

对于规模较小的项目来说,Morphia仍然是一个不错的选择,确实会带来很好的开发人员生产力提升。请记住它的缺点。

希望有所帮助。

+0

另外,如果你打算使用Morphia,上面发布的maven pom添加不起作用,请告诉我。 – 2012-08-01 21:32:12

+0

非常感谢Prasith。事实上,当你在我身边并且现在处于开发阶段时,我就你的软件系统的设计提供了建议。是的,依赖和导出的jar一起工作。现在我将编写代码,如果我将有问题我会在这里发布我的查询本身。再次感谢Prasith。 – 2012-08-03 14:37:09