我有一堆我已经解析成离散字段的 XML 文件。我编写了一个 Spring MVC 应用程序,它显示解析的字段。不,我想要一个可以将这些字段发送到 MongoDB 并在 Spring MVC 上查询数据库的 ORM应用端。我浏览了 ORM,但想了解您对使用哪个 ORM 将 SpringMVC 应用程序与 MongoDB 集成的意见,无论是 Morphia 还是 Java Mongo 驱动程序,还是 Hibernate 可以与 MongoDB 一起使用?
谢谢
我有一堆我已经解析成离散字段的 XML 文件。我编写了一个 Spring MVC 应用程序,它显示解析的字段。不,我想要一个可以将这些字段发送到 MongoDB 并在 Spring MVC 上查询数据库的 ORM应用端。我浏览了 ORM,但想了解您对使用哪个 ORM 将 SpringMVC 应用程序与 MongoDB 集成的意见,无论是 Morphia 还是 Java Mongo 驱动程序,还是 Hibernate 可以与 MongoDB 一起使用?
谢谢
我在生产环境中使用过 Morphia,如果你有基于 maven 的构建,它很容易包含在内。只需将此片段添加到您想要的构建中:
http://code.google.com/p/morphia/wiki/Dependencies#Through_Maven
但是使用它后,我会说如果我可以再次使用它,那么我将使用 Spring Data(它支持 Mongo)或使用良好的基本 DAO 模式直接使用本机 Mongo 驱动程序。
我的理由如下: 1) Morphia 不像以前那么活跃。2) O/R 映射器在开始时很棒,但您会遇到许多您希望拥有的新功能。例如,一种常见的做法是,当您的数据模型发生变化时,您希望在使用新字段读取旧行时升级它们。使用本机驱动程序非常简单,但一旦抽象它就不是那么简单了。3) Morphia 也有一个已知问题(可能是设计决策),它会与主要父级一起拉取 ref 集合。例如,对于拥有邮箱的用户对象,它会提取他的所有消息并导致许多性能问题。你可以通过延迟加载模式来解决这个问题,但从长远来看又会遇到更多麻烦。
我的建议: 1) 如果你必须使用 O/R 映射器并且你已经在 Spring 为什么不使用 Spring Data,它周围有一个更大的开发者社区(和一家大公司)。2)如果您正在构建一个更大的项目,请使用本机驱动程序。
对于较小的项目,Morphia 仍然是一个不错的选择,并且确实为开发人员带来了良好的生产力提升。请记住它的缺点。
希望有帮助。
如果您已经在使用 Spring,那么Spring Data - MongoDb 是更好的选择。