最近我的团队从Hibernate 3升级到了Hibernate 5,所以我正在进行迁移工作。现在,当我尝试使用CriteriaQuery类时,eclipse显示它可以从javax.persistence.criteria'中导入。以及' org.hibernate.criterion'包。
CriteriaQuery cq = getSession().getCriteriaBuilder().createQuery(MyClass.class);
所以我在这里对使用哪一个感到困惑。
如果有人可以解释两者之间的区别(JPA和Hibernate),那将是非常有帮助的,因为我在概念上不清楚这一点,并且很难了解下面发生的事情。
答案 0 :(得分:1)
来自Hibernate docs:
This appendix covers the legacy Hibernate org.hibernate.Criteria API, which should be considered deprecated.
您应该使用受Hibernate影响很大的JPA条件查询。在开始时,Hibernate 5出现时存在相当多的差异(例如,LAZY vs EAGER fetch as defaults on mappings。),大多数差异已由Hibernate采用JPA行为解决。据我所知,大多数Hibernate行为现在要么与JPA标准相同或类似,并且只是为了传统目的而维护。