首页 文章

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

提问于
浏览
23

我们已经知道 criterion queryHibernate 5 中已弃用 . 它在以前版本的Hibernate中是如此有用的功能 . 它仍然比HQL表现更好 .

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

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

这是here.

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

1 回答

  • 10

    我们弃用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旨在实现同步互补 .

相关问题