【问题标题】:Hibernate named queries and startup performancesHibernate 命名查询和启动性能
【发布时间】:2012-04-04 21:39:48
【问题描述】:

我们正在使用 JPA/Hibernate 启动一个新项目。团队中的某个人拒绝使用命名查询,说他以前遇到过性能问题。据他介绍,命名查询不仅在启动时被解析,而且它们也会被执行,这会显着减慢启动速度。

是否正确,如果正确,是否有任何配置可以防止休眠执行查询?

【问题讨论】:

    标签: hibernate jpa named-query


    【解决方案1】:

    但是它们运行得更快。那么你更喜欢什么,更慢的启动或更快的查询性能。

    您还可以通过验证获得不错的好处,因此您可以及早发现错误..

    但这当然是理论。与往常一样,在性能方面,您应该在自己的系统上进行测试和验证!

    这是一个很好的阅读主题: http://eubauer.de/kingsware/2011/03/25/organize-your-named-jpql-queries/

    【讨论】:

      【解决方案2】:

      据他说,命名查询不仅在启动时被解析,而且还会被执行,这会显着减慢启动速度。

      不,这不是真的。命名查询不会在启动时执行。它们在启动时被解析编译,但没有针对数据库执行。

      是否正确,如果正确,是否有任何配置可以防止休眠 从执行查询?

      如果您询问如何防止编译此类查询,AFAIK 无法禁用它。

      虽然我同意大量的命名查询会减慢应用程序的启动速度,但通常这不是一个重要因素。

      您必须在启动性能和运行时性能之间做出选择。就我个人而言,我通常将我的一些 JPA 查询设为命名查询(运行时性能至关重要的查询)。

      【讨论】:

        猜你喜欢
        • 2014-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-16
        • 1970-01-01
        • 2014-05-26
        • 1970-01-01
        相关资源
        最近更新 更多