为什么在Hibernate 5中不推荐使用条件查询?
我们已经知道,在Hibernate 5中不推荐使用标准查询 。 它在以前版本的Hibernate中是如此有用的function。 它仍然比HQL表现更好。
那么它在Hibernate 5中被弃用的原因是什么?
此问题也不是这个问题的重复,因为我想知道标准查询弃用的原因。
这是从这里来的。
Hibernate提供了一个旧的,传统的
org.hibernate.Criteria
API,应该被认为是不推荐使用的。 没有function开发将针对这些API。 最终,特定于Hibernate的标准function将被移植为JPAjavax.persistence.criteria.CriteriaQuery
扩展。 有关org.hibernate.Criteria
API的详细信息,请参阅Legacy Hibernate Criteria Queries。
我们弃用Criteria API代替JPA扩展支持。
考虑一下:
CriteriaBuilder cb = entityManager.getCriteriaBuilder(); HibernateCriteria hc = cb.unwrap( HibernateCriteria.class ); ... query.where( hc.someAwesomeThing( ... ) ); List entities = entityManager.createQuery( query ).getResultList();
与评论相反,我们打算继续提供特定于Hibernate的function,但我们希望通过标准API引入这些function,而不是尝试管理两个非常不同的API,这些API旨在实现同步互补。