Hibernate Criteria API 是否已弃用?如果是,我们应该使用什么 API?

Is Hibernate Criteria API Deprecated and if so what API should we use?

正如标题所说。它被弃用了吗?它在开发手册中说是,我们应该使用 JPA Criteria,但在用户手册中没有提到这一点。

A​​FAIK 并查看 Javadocs,Hibernate Criteria API 未被弃用。但是,有一个很好的理由支持使用 JPA 而不是 hibernate,因为这意味着您可以在持久性提供程序之间切换而无需修改您的代码。如果您使用 Hibernate Criteria API,那么您的代码将完全绑定到 Hibernate。

2016 年 6 月 7 日更新

来自Hibernate 5.2 documentation.

“本附录涵盖遗留 Hibernate org.hibernate.Criteria API,应将其视为弃用。

新的开发应该关注 JPA javax.persistence.criteria.CriteriaQuery API。最终,特定于 Hibernate 的标准功能将作为扩展移植到 JPA javax.persistence.criteria.CriteriaQuery。有关 JPA API 的详细信息,请参阅标准。".

这意味着,Hibernate 标准是可用的,因为它不是正式的 @Deprecated,但您应该改用 JPA!