javax.persistence.criteria 和 org.hibernate.criterion 包有什么区别?
What is the difference between javax.persistence.criteria and org.hibernate.criterion packages?
最近我的团队从 Hibernate 3 升级到 Hibernate 5,所以我正在处理迁移问题。现在,当我尝试使用 CriteriaQuery class 时,eclipse 显示它可以从 'javax.persistence.criteria' 和 'org.hibernate.criterion' 包中导入。
CriteriaQuery cq = getSession().getCriteriaBuilder().createQuery(MyClass.class);
所以我在这里对使用哪个有点困惑。
此外,如果有人能解释两者(JPA 和 Hibernate)之间的区别,那将非常有帮助,因为我在概念上不清楚这一点,并且很难了解下面发生的事情。
来自 Hibernate 文档:
This appendix covers the legacy Hibernate org.hibernate.Criteria API, which should be considered deprecated.
您应该使用受 Hibernate 影响很大的 JPA 条件查询。一开始,存在相当多的差异(例如,LAZY 与 EAGER fetch 作为映射的默认值。)到 Hibernate 5 出现时,大部分差异已通过采用 JPA 行为的 Hibernate 得到解决。据我了解,大多数 Hibernate 行为现在与 JPA 标准相同或相似,并且仅出于遗留目的而维护。
最近我的团队从 Hibernate 3 升级到 Hibernate 5,所以我正在处理迁移问题。现在,当我尝试使用 CriteriaQuery class 时,eclipse 显示它可以从 'javax.persistence.criteria' 和 'org.hibernate.criterion' 包中导入。
CriteriaQuery cq = getSession().getCriteriaBuilder().createQuery(MyClass.class);
所以我在这里对使用哪个有点困惑。
此外,如果有人能解释两者(JPA 和 Hibernate)之间的区别,那将非常有帮助,因为我在概念上不清楚这一点,并且很难了解下面发生的事情。
来自 Hibernate 文档:
This appendix covers the legacy Hibernate org.hibernate.Criteria API, which should be considered deprecated.
您应该使用受 Hibernate 影响很大的 JPA 条件查询。一开始,存在相当多的差异(例如,LAZY 与 EAGER fetch 作为映射的默认值。)到 Hibernate 5 出现时,大部分差异已通过采用 JPA 行为的 Hibernate 得到解决。据我了解,大多数 Hibernate 行为现在与 JPA 标准相同或相似,并且仅出于遗留目的而维护。