【发布时间】:2014-06-19 19:24:08
【问题描述】:
我们将编写一个我们正在尝试评估技术堆栈的服务。因此,作为 ORM 的一部分,我们正在考虑使用 hibernate,但从我的一位同事那里我知道了 abt ebean。但是我们对ebean一无所知。
所以我的问题是:是否存在与休眠相关的任何缺点、任何可销售性或性能瓶颈? ebean 带来的优势是什么?
【问题讨论】:
我们将编写一个我们正在尝试评估技术堆栈的服务。因此,作为 ORM 的一部分,我们正在考虑使用 hibernate,但从我的一位同事那里我知道了 abt ebean。但是我们对ebean一无所知。
所以我的问题是:是否存在与休眠相关的任何缺点、任何可销售性或性能瓶颈? ebean 带来的优势是什么?
【问题讨论】:
Ebean 带来了什么?
简而言之,Ebean 带来了一个更易于使用且最重要的是优化的全功能 ORM(嗯,它很简单,但也可以通过分析自动完成)。
一种查询语言,旨在通过对部分对象的良好支持以及内置避免 N + 1
一个“无会话”ORM ...架构为没有附加/分离语义(因此这使得它更易于使用/快速掌握)。
Ebean 现在具有 SQL2011 History 支持和 ElasticSearch 集成。你可以说 Hibernate 有类似的功能。
参考链接:
【讨论】:
在大型且可扩展的应用程序中,hibernate 以及基本上任何 JPA 实现都存在很多问题。您应该考虑使用另一种解决方案。文章 Large Application Model issues 中对问题进行了很好的描述,而文章 Model for large applications 中的模型应该是什么样子。
【讨论】:
如前所述,Ebean 是无会话 ORM,因此您无需考虑会话。 Hibernate 具有无法禁用的一级缓存。也就是说,如果你通过ORM查询item,然后用SQL直接删除它,它就留在缓存中。您可以显式清除缓存以从数据库中获取最新结果,但不幸的是,这种行为可能会带来诸如“传递给持久化的分离实体”之类的错误。
【讨论】: