Hibernate5.2版本之后 createCriteria()方法过时的替换方式

1.由于session.createCriteria()已经过时然后看了下hibernate的例项找到了此种方法。

session.beginTransaction();

//注意导入的包是import javax.persistence.criteria.CriteriaQuery;

CriteriaQuery<Student> criteriaQuery = session.getCriteriaBuilder().createQuery(Student.class);

//criteriaQuery 对象可以添加各种查询条件和关联条件等等

criteriaQuery.from(Student.class);

List<Student> list = session.createQuery(criteriaQuery).getResultList();

官方文档给出了几句话:参考(https://stackoverflow.com/questions/38448195/why-is-criteria-query-deprecated-in-hibernate-5)

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.

我也不太懂然后用有道翻译下大致意思就是下面这样。

最终,Hibernate-specific标准特性将移植作为JPA javax.persistence.criteria.CriteriaQuery扩展。

关于org . hibernate的详细信息。Criteria API,查看遗留Hibernate Criteria查询。

可以说Criteria标准化查询差不多都转到使用Jpa包了

2.session.createSQLCriteria()方法也过时了,当然可以用session.createNativeCriteria()方法来代替。

经验分享 程序员 微信小程序 职场和发展