Morphia vs Spring Data Mongo

Posted

技术标签:

【中文标题】Morphia vs Spring Data Mongo【英文标题】: 【发布时间】:2016-10-01 18:44:34 【问题描述】:

我正在使用 Java 语言。我必须使用带有 MongoDb 的 ORM 框架作为数据库。我有两个选项 Morphia 或 Spring Data Mongo 支持。据我所知,我发现 Spring Data Mongo 更好使用自: 1)它提供了更好的DAO开箱即用的内置类。 2)拥有更大的社区基础。

两者之间是否存在任何基于性能的差异。如果在哪种情况下哪一个更好。另外我有多租户的要求。经过少量搜索后,我发现 Spring Data Mongo 中有非常简单的自定义实现来做一样。但是在 Morphia 中有点困难。在 Morphia 中实现多租户是否困难(我们需要编写大量样板代码)

【问题讨论】:

这是一道题外话推荐题。 【参考方案1】:

Morphia 是必经之路。非常稳定,非常好的 Play 集成,如果您需要更大的扭矩,可以访问所有 Mongo 驱动程序功能。参考解析、实体嵌入按预期工作。您还可以获得生命周期注释,这对于样板持久性代码非常有用。

我个人喜欢 spring-data,因为 hades 项目......你不需要实现 DAO。您只需编写接口,spring 数据会自动提供给您。然而,在我最初的试用中,Spring Data Mongodb 的实现似乎有点问题。如果您有困难的日期并且正在开发高质量的产品,那么选择 Morphia 可能是明智的。

获取更多信息和实现示例:mongodb-java-comparison/

【讨论】:

【参考方案2】:

我一直在使用 Spring-data,我想我觉得它在成熟度方面有所滞后。

它对所有实际目的都有好处,但 mongo 提供的功能在它的全部荣耀中提供,Spring-data 将其映射为驱动程序特别是在聚合时很慢。

就性能而言,Spring-data 并不落后于 imo。

有时我会出现奇怪的行为。 Some 他们的注释在某些地方默默地不起作用,我一生无法弄清楚为什么?

但作为一个整体实现,它非常有用,因为它提供了一个健壮的结构,您的应用程序可以在其上增长。如果您来自 SQL 背景,这也很容易,因为您可以在 jdbcTemplate 和 mongoTemplate 之间进行比较(尽管需要谨慎)

我认真考虑过使用 Morphia,但放弃了这个想法,因为 spring-data 提供了更结构化的方法。看起来在 Morphia 中,我们必须自己实现一些有利有弊的结构,但您通常希望避免这样做。由于存在样板代码的风险,因此新成员的“您的”结构存在学习曲线。

在专业方面,我相信 Morphia 提供了更多的可扩展性,让您享受充分利用 mongo 功能的能力。与 Spring 数据相比,它也是轻量级的。

【讨论】:

***.com/q/66305029/413032 请阅读我的问题,我用 Mongo 基本驱动程序 * / *Spring Data Mongo / Morphia 的经验详细说明了这一点用例。

以上是关于Morphia vs Spring Data Mongo的主要内容,如果未能解决你的问题,请参考以下文章

Spring、Morphia 和 DataAccessException 实现

MongoDB 的 Morphia、Mongo4j 和 Spring 数据如何比较? [关闭]

morphia

基于Morphia实现MongoDB按小时按天聚合操作

spring-jdbc vs spring-data-jdbc,它们支持啥

Spring Data vs Couchbase SDK [关闭]