Hibernate命名查询和启动性能

时间:2012-03-20 12:12:07

标签: hibernate jpa named-query

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

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

2 个答案:

答案 0 :(得分:1)

但是它们运行得更快..那么你宁愿拥有什么,更慢的启动或更快的查询性能。

通过验证您也可以获得很好的好处,因此您可以尽早发现错误。

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

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

答案 1 :(得分:1)

  

根据他的说法,命名查询不仅在启动时被解析,而且它们也被执行,这将大大减慢启动速度。

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

  

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

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

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

您必须在启动和运行时性能之间进行选择。就个人而言,我通常会将一些我的JPA查询命名为命名查询(那些,运行时性能必不可少)。