我有一个使用 Hibernate 4.x 的应用程序,它目前正在使用本机 Hibernate API(这意味着我有 aSessionFactory
和Session
s)。我刚刚注意到现有的 Criteria API 已被弃用,取而代之的是 JPA 的(高级)Criteria API:
Hibernate 提供了一个较旧的遗留
org.hibernate.Criteria
API,应被视为已弃用。没有功能开发将针对这些 API。最终,特定于 Hibernate 的标准特性将被移植为 JPA 的扩展javax.persistence.criteria.CriteriaQuery
。
我不想将我的应用程序转换为EntityManager
直接使用(即使Session
从那里很容易获得 Hibernate),因为我们有大量需要替换的自定义 Hibernate 配置逻辑。尽管如此,我肯定想开始使用 JPA Criteria API,因为旧的 API 已被弃用(如果过去的 Hibernate 版本有任何迹象,可能会在未来的某个随机点消失)并且它们还提供了更好的类型安全性。
如果我使用的是 SessionFactory/Session,如何使用新的 CriteriaQuery/CriteriaBuilder API?