3

最近我的团队从 Hibernate 3 升级到了 Hibernate 5,所以我正在研究迁移的东西。现在,当我尝试使用 CriteriaQuery 类时,eclipse 显示它可以从“javax.persistence.criteria”和“org.hibernate.criterion”包中导入。

CriteriaQuery cq = getSession().getCriteriaBuilder().createQuery(MyClass.class);

所以我对使用哪一个有点困惑。

如果有人可以解释两者(JPA 和 Hibernate)之间的区别,那将非常有帮助,因为我在概念上不清楚这一点并且很难了解下面发生的事情。

4

1 回答 1

3

从休眠文档:

This appendix covers the legacy Hibernate org.hibernate.Criteria API, which should be considered deprecated.

您应该使用受 Hibernate 严重影响的 JPA 条件查询。一开始,存在相当多的差异(例如,LAZY 与 EAGER fetch 作为映射的默认设置)。当 Hibernate 5 出现时,大部分差异已通过 Hibernate 采用 JPA 行为得到解决。据我了解,大多数 Hibernate 行为现在与 JPA 标准相同或相似,并且仅出于遗留目的而维护。

于 2018-06-04T23:08:33.430 回答