Java JPA和EBean Play框架之间的差异

Java JPA和EBean Play框架之间的差异,java,jpa,playframework,ebean,Java,Jpa,Playframework,Ebean,我是一个比较新的游戏框架,我试着遵循食谱,但它似乎已经过时了。不管怎样,我只是想知道我提到的这些之间是否有很大的区别 一些教程使用eBean,而其他教程使用jpa。我真的很困惑。这里回答了同样的问题: JPA是许多库实现的标准。Ebean使用JPA标准的部分内容。Eben希望您使用JPA注释对模型进行注释。所以这个问题,哪个更好,Ebean还是JPA,回答起来很奇怪,因为Ebean部分是JPA实现。我相信Play2可能还提供了Hibernate集成,它更全面地实现了JPA标准,也许这就是您要问的

我是一个比较新的游戏框架,我试着遵循食谱,但它似乎已经过时了。不管怎样,我只是想知道我提到的这些之间是否有很大的区别


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

这里回答了同样的问题:

JPA是许多库实现的标准。Ebean使用JPA标准的部分内容。Eben希望您使用JPA注释对模型进行注释。所以这个问题,哪个更好,Ebean还是JPA,回答起来很奇怪,因为Ebean部分是JPA实现。我相信Play2可能还提供了Hibernate集成,它更全面地实现了JPA标准,也许这就是您要问的?Hibernate在Java社区中的应用要广泛得多。我在尝试第二场比赛时换成了埃宾,没有回头看。我更喜欢它而不是Hibernate,因为Hibernate有很多棘手的问题,我经常会遇到这些问题,而我在Ebian身上没有发现任何这些问题


在游戏2.3中,他们将切换回JPA!!Typesafe的开发者拥护者James Ward刚刚告诉我用JPA开始新的项目:(或者特别是Hibernate)

以下是重头戏2.3的官方路线图:

对于决定切换回JPA背后的一些原因:“[2.3路线图]-DevTeam的问题:为什么在2.3中考虑用JPA替换Ebean?”

最后,James Ward在github上为我创建了一个初级游戏JPA示例:


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

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


然而,未来是JPA,所以你可能想冒险去学习它。还有一个示例ComputerDatabaseJPA,它也随Play一起提供。

如果您对有关Ebean ORM和JPA(以及Hibernate)之间差异的更多技术细节感兴趣,并因此了解Ebean首先存在的原因,您可以看一下:

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

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

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

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

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


所以Play 2.3退出了,但我很困惑,因为它仍然说EBean是默认值。您可以与JPA集成,并为persistence.xml添加hibernate的内容。那么Hibernate不会是默认的吗?披露:我开发了Ebean ORM,我可以告诉你它不会消失。对于那些想要“无会话ORM”和没有N+1的生活、自动查询调优和流式查询、ElasticSearch集成以及。。。嗯,你知道该去哪里找。
未来是JPA
。。。10年后我们会看到的,不是吗。架构上JPA有一些问题。。。因此,没有“流式查询”和“无状态更新”以及糟糕的N+1问题。