为什么在Hibernate 5中不推荐使用条件查询?

Pri*_*jee 28 java hibernate hibernate-criteria

我们已经知道,在Hibernate 5中不推荐使用标准查询.它在以前版本的Hibernate中是如此有用的功能.它仍然比HQL表现更好.

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

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

这是从这里来的.

Hibernate提供了一个较旧的遗留org.hibernate.CriteriaAPI,应该被视为已弃用.没有功能开发将针对这些API.最终,特定于Hibernate的标准功能将被移植为JPA的扩展 javax.persistence.criteria.CriteriaQuery.有关org.hibernate.CriteriaAPI的详细信息 ,请参阅旧版Hibernate Criteria Queries.

Nar*_*ros 12

我们弃用Criteria API代替JPA扩展支持.

考虑一下:

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

相反的意见,我们打算继续提供Hibernate的相关功能,但我们要介绍的是那些通过标准的API,而不是,而不是试图管理保留了那些打算在同步互补的两个非常不同的API.

  • 目前我的项目使用已弃用的Criteria API.是否建议根据新建议使用HQL或CriteriaBuilder重写查询? (15认同)