【问题标题】:Is legacy Criteria API still recommended?是否仍然推荐使用旧的 Criteria API?
【发布时间】:2016-04-29 16:34:17
【问题描述】:

我的团队在 Hibernate 3.x 下使用 hibernate Criteria API 已经很长时间了。最近,我们想将 Hibernate 版本升级到 5,但 Criteria API 似乎不再推荐了。但是 JPA 看起来像一个完全不同的 API,我们不想冒险。我们应该继续使用旧的 Criteria 吗?

【问题讨论】:

    标签: hibernate jpa criteria


    【解决方案1】:

    嗯,Version 5.0 Criteria Chapter 中的警告非常大:

    Hibernate 提供了一个旧的、遗留的 org.hibernate.Criteria API,应该被视为已弃用。没有功能开发将针对这些 API。最终,特定于 Hibernate 的标准特性将被移植为 JPA javax.persistence.criteria.CriteriaQuery 的扩展。有关 org.hibernate.Criteria API 的详细信息,请参阅 Legacy Hibernate Criteria Queries。

    还有更多:

    较旧的 Hibernate org.hibernate.Criteria 查询 API 的用户会认可通用方法,但我们认为 JPA API 更胜一筹,因为它代表了从该 API 中吸取的教训。

    所以,这似乎真的取决于您的团队。我花了一段时间才习惯了 JPA API,但现在已经很顺利了。我已经回到 Hibernate 以获得非常大的提取性能,但总的来说,我使用任何 JPA 都没有任何问题。我倾向于使用@NamedQueries 进行基本访问,如果我需要更动态的东西,我倾向于使用Criteria API。

    编辑:更新我能够解决性能问题,并且应用程序现在是严格的 JPA。

    【讨论】:

      【解决方案2】:

      如果由于时间限制/项目截止日期/其他风险的原因,您无法将代码从旧版 Hibernate Criteria API 移动到 JPA API,那么您至少应该设置某种时间线来恢复它。 Hibernate 很可能会在接下来的 2 个主要版本中完全放弃弃用的 Criteria API。

      【讨论】:

        猜你喜欢
        • 2017-01-10
        • 1970-01-01
        • 2010-11-19
        • 2021-03-17
        • 2015-06-02
        • 2012-07-17
        • 1970-01-01
        • 1970-01-01
        • 2011-04-18
        相关资源
        最近更新 更多