JPA和EBean Play Framework之间的区别

xxx*_*yme 14 java jpa playframework ebean

我对Play框架比较陌生,我试过跟着这本食谱,但它似乎已经过时了.无论如何我只是想知道我提到的那些之间是否存在很大差异.

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

Bri*_*ter 18

在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的问题:为什么在2.3中认为Ebean被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不是默认的吗? (3认同)

cos*_*lev 17

同样的问题在这里得到解答:https://groups.google.com/forum/#!topic / play-frame/6OR1Osf4AAU

JPA是许多库实现的标准.Ebean使用部分JPA标准.Ebean希望您使用JPA注释注释您的模型.所以更好的问题是Ebean或JPA,因为Ebean部分是JPA实现,所以这个问题很难回答.我相信Play 2可能还提供了一个Hibernate集成,它更全面地实现了JPA标准,也许就是你所要求的?Hibernate在Java社区中使用得更为广泛.我在尝试播放2时切换到Ebean并且没有回头看.我更喜欢Hibernate,因为Hibernate有很多棘手的问题,我总是磕磕绊绊,而且我没有在ebean中找到任何这些问题.


Rob*_*ave 7

如果您对Ebean ORM和JPA(和Hibernate)之间差异的更多技术细节感兴趣,那么Ebean存在的原因可以在第一时间看到:

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

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

  • Ebean ORM是"无会话" ORM(因此不附加/分离语义,不管理EntityManger等)

  • Ebean ORM的查询语言更好地设计用于优化对象图构造(支持部分对象避免N + 1 - 无论对象图有多复杂,您都不应该对Ebean有N + 1问题).

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

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

有关N + 1的更多详细信息,请参阅:

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