java – 为什么在Hibernate 5中不推荐使用标准查询?

前端之家收集整理的这篇文章主要介绍了java – 为什么在Hibernate 5中不推荐使用标准查询?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
正如我们已经知道的那样,Hibernate 5中的标准查询已被弃用.在以前的Hibernate版本中,这是一个非常有用的功能.它仍然比HQL表现更好.

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

而且这个问题不是this question的重复,因为我想知道标准查询的弃用原因.

这是从here.

Hibernate offers an older,legacy org.hibernate.Criteria API which
should be considered deprecated. No feature development will target
those APIs. Eventually,Hibernate-specific criteria features will be
ported as extensions to the JPA
javax.persistence.criteria.CriteriaQuery. For details on the
org.hibernate.Criteria API,see Legacy Hibernate Criteria Queries.

解决方法

我们不赞成使用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.

猜你在找的Java相关文章