当前位置: 首页 > 面试题库 >

为什么在Hibernate 5中不赞成使用条件查询?

爱刚捷
2023-03-14
问题内容

众所周知,在 Hibernate 5中* 不建议使用 条件查询 。在以前的Hibernate版本中,该功能非常有用。
而且它的性能仍然优于HQL。
* __

那么它在 Hibernate 5中 被弃用的原因是什么?

这是从这里。

Hibernate提供了一个较旧的旧式org.hibernate.CriteriaAPI,应将其视为已弃用。没有针对这些API的功能开发。最终,特定于Hibernate的条件功能将被移植为JPA的扩展
javax.persistence.criteria.CriteriaQuery。有关org.hibernate.CriteriaAPI的详细信息
,请参见旧式hibernate条件查询。


问题答案:

我们不推荐使用Criteria API来代替JPA扩展支持。

考虑一下:

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
HibernateCriteria hc = cb.unwrap( HibernateCriteria.class );
...
query.where( hc.someAwesomeThing( ... ) );
List<SomeEntity> entities = entityManager.createQuery( query ).getResultList();

与评论相反,我们 确实
打算继续提供特定于Hibernate的功能,但我们希望通过标准API引入这些功能,而不是试图保持两个完全不同的API,这些API旨在实现同步互补。



 类似资料:
  • Hibernate提供了一个旧的、遗留的API,应该认为这是不推荐的。任何特性开发都不会针对这些API。最终,特定于Hibernate的标准特性将作为扩展移植到JPA。有关API的详细信息,请参阅遗留Hibernate Criteries查询。

  • 问题内容: 为什么在JavaScript中不推荐使用该属性? 它是在JavaScript中添加然后弃用的,但ECMAScript完全省略了它。某些浏览器(Mozilla,IE)一直都支持该浏览器,并且在地图上没有删除支持的计划。其他浏览器(Safari,Opera)已对此提供支持,但较旧的浏览器支持不可靠。 是否有充分的理由将这种有价值的功能置于边缘? (或者,是否有更好的方法来抓住调用函数的句柄

  • 问题内容: ControlsFX类被标记为已弃用。 用什么代替呢? 问题答案: 这篇博客文章解释了这一切: http://fxexperience.com/2014/09/announcing- controlsfx-8-20-7/ 自从5月29日发布8.0.6以来,此版本一直在酝酿之中- 基本上是四个月。这对我们来说并不常见(通常我们的发行版要快得多),但是Eugene和我都对一项主要工作分心-

  • 我看过一些代码,其中人们使用了带有两个“!”的条件子句s 这是我能找到的一些例子。 使用有什么好处超过?

  • 问题内容: 我最近继承的应用程序关于构造函数的弃用警告已满: 有谁知道或可以指出为什么将诸如以下这样的简单内容替换为以下内容的原因: 现在,显然不赞成使用警告本身并不是问题,但是您是否可以想象,如果删除此构造函数,数以百万计的LOC会痛苦地哭泣吗? 在我对基准测试的简短介绍中,执行基准测试大约需要50%的时间。 问题答案: 本来打算包含有关日期的所有逻辑,但是API设计人员最终意识到,到目前为止,

  • 问题内容: 尝试编译时出现“不是语句”的编译错误,代码为: 当这些功能是: 有任何想法吗? 问题答案: 是的,您不能像这样使用条件运算符。其目的是计算一个或另一个 表达式 。它并不是要选择一个要执行的 语句 或另一条 语句 的方法。 只需使用: