我们已经知道,规范查询在Hibernate 5中是不推荐的。在Hibernate的早期版本中,这是一个非常有用的特性。而且它的表现仍然好于HQL。
那么,在Hibernate 5中它被拒绝的原因是什么呢?
而且,这个问题并不是这个问题的重复,因为我想知道标准查询被否决的原因。
这是来自这里。的
Hibernate提供了一个旧的、遗留的
org.hibernate.CriteriaAPI,应该被认为是不推荐的。没有任何特性开发会针对这些API。最终,Hibernate特有的标准特性将被移植为JPAjavax.persistence.criteria.CriteriaQuery的扩展。有关org.hibernate.CriteriaAPI的详细信息,请参阅Legacy Hibernate标准查询。
发布于 2017-02-09 23:23:16
我们反对使用标准API来代替JPA扩展支持。
考虑到这一点:
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
HibernateCriteria hc = cb.unwrap( HibernateCriteria.class );
...
query.where( hc.someAwesomeThing( ... ) );
List<SomeEntity> entities = entityManager.createQuery( query ).getResultList();与评论相反,我们do打算继续提供Hibernate特有的特性,但是我们希望通过标准API来引入这些特性,而不是试图保持两个非常不同的API保持同步。
https://stackoverflow.com/questions/38448195
复制相似问题