2

We are starting a new projet using JPA/Hibernate. Someone in the team is refusing to use named queries saying that he had performance issues with those before. According to him, the named queries are not only parsed at startup but they also are executed which would slow significantly the startup.

Is it right and if so, is there any configuration to prevent hibernate from executing the queries?

4

2 回答 2

1

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

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

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

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

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

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

于 2014-09-11T07:56:12.847 回答
1

但是它们运行得更快.. 那么您更愿意拥有什么,启动速度较慢或查询性能更快。

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

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

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

于 2012-03-20T12:29:39.370 回答