【问题标题】:Difference between JPA and EBean Play FrameworkJPA 和 EBean Play 框架的区别
【发布时间】:2013-12-30 09:41:23
【问题描述】:

我对 Play 框架比较陌生,我尝试按照食谱进行操作,但它似乎已经过时了。无论如何,我只想知道我提到的那些之间是否有很大的不同。

一些教程使用 eBean,而其他教程使用 jpa。我真的很困惑。

【问题讨论】:

    标签: java jpa playframework ebean


    【解决方案1】:

    这里回答了同样的问题:https://groups.google.com/forum/#!topic/play-framework/6OR1Osf4AAU

    JPA 是许多库实施的标准。 Ebean 使用部分 JPA 标准。 Ebean 期望您使用 JPA 注释来注释您的模型。因此,Ebean 或 JPA 哪个更好的问题是一个奇怪的问题,因为 Ebean 部分是 JPA 实现。我相信 Play 2 也可能提供 Hibernate 集成,它更全面地实现了 JPA 标准,也许这就是您要问的? Hibernate 在 Java 社区中的使用更为广泛。我在尝试 Play 2 时切换到 Ebean 并且没有回头。与 Hibernate 相比,我更喜欢它,因为 Hibernate 有很多棘手的问题,我总是遇到这些问题,而且我还没有发现任何与 ebean 相关的问题。

    【讨论】:

      【解决方案2】:

      在 Play 2.3 中,他们将切换回 JPA! Typesafe 的开发人员倡导者 James Ward 刚刚告诉我使用 JPA 开始新项目:https://twitter.com/_JamesWard/status/416977192019456000(或者特别是 Hibernate)

      这是 Play 2.3 的官方路线图: https://docs.google.com/document/d/11sVi1-REAIDFVHvwBrfRt1uXkBzROHQYgmcZNGJtDnA/pub

      由于决定切换回 JPA 背后的一些原因:“[2.3 路线图] - DevTeam 的问题:为什么认为 Ebean 在 2.3 中被 JPA 取代?” https://groups.google.com/forum/#!searchin/play-framework/2.3/play-framework/7pL-Gq_pj7M/UykJdAC6wyYJ

      最后,James Ward 在 github 上为我创建了一个基本的 Play JPA 示例:https://github.com/jamesward/play-java-jpa

      它仍然需要通过搜索和分页示例来增强,但这是一个开始。如果有人找到一个好的最佳实践 Play 2.3 JPA / Hibernate 示例,我将不胜感激。

      【讨论】:

      • 所以 Play 2.3 已经发布,但我很困惑,因为它仍然说 EBean 是默认的。您可以与 JPA 集成并为 hibernate 添加一些内容到 persistence.xml。那么 Hibernate 不会成为默认设置吗?
      • 披露:我开发了 Ebean ORM,我可以告诉你它不会消失。对于那些想要“无会话 ORM”和没有 N + 1 的生活,以及自动查询调整和流式查询,以及 ElasticSearch 集成,以及......好吧,你知道去哪里找。
      【解决方案3】:

      如果您对围绕 Ebean ORM 和 JPA(以及 Hibernate)之间差异的更多技术细节以及 Ebean 最初存在的原因感兴趣,您可以查看:

      http://ebean-orm.github.io/architecture/compare-jpa

      简而言之有两个主要问题:

      • Ebean ORM 是 “无会话” ORM(因此不附加/分离语义,没有要管理的 EntityManger 等)

      • Ebean ORM 的查询语言更适合优化对象图构造(支持部分对象避免 N + 1 - 你永远不应该有 N + 1无论对象图多么复杂,Ebean 都会出现问题)。

      有关 Partial 对象的更多详细信息,请参阅:

      http://ebean-orm.github.io/docs/query/partialobjects

      更多关于 N+1 的详情请参考:

      http://ebean-orm.github.io/docs/query/nplus1

      【讨论】:

        【解决方案4】:

        EBean 更易于使用。查看 Play 附带的示例应用 ComputerDatabase。 您可能希望在学习 Play 时使用 EBean,因为 EBean 是当前默认设置。

        但是,未来是 JPA,因此您可能想尝试一下并学习它。有一个示例 ComputerDatabaseJPA,它也随 Play 提供。

        【讨论】:

        • the future is JPA ...我们将在 10 年后看到,不是吗。在架构上,JPA 存在一些问题……因此没有“流式查询”、“无状态更新”和糟糕的 N + 1 问题。
        猜你喜欢
        • 2012-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多