Hibernate命名查询与JDBC查询性能

时间:2014-04-02 13:30:32

标签: java sql hibernate jdbc

我的要求是只获取记录的可用性(不获取值)。对于这种情况,我的问题是什么是提高JDBC查询和HQL命名查询之间的性能的更好的解决方案。

我认为,由于命名查询是在加载hibernate工厂时加载的,因此它可能比jdbc更快。

请注意这不是正常的HQL查询,我在这里询问命名查询

普通HQL和命名查询可以有不同的性能。大多数问题和答案都是关于普通的HQL。我的观点是NAMED QUERY。

2 个答案:

答案 0 :(得分:0)

Hibernate很棒。但大多数人在使用条件查询时遇到问题,因为他们不理解它只能用于少量的表,如5或更少。如果您在企业级别中执行某些操作,请使用HQL查询,您将拥有jdbc的所有功能。学习曲线也很高,但一旦你学到了什么就可以比较。

答案 1 :(得分:0)

我认为您的问题是“您应该在JDBC和Hibernate之间选择哪个选项”。

首先,使用HQL,您可以随时查询,并且不会为每个请求生成查询。但是在hibernate中的本机SQL的情况下,如果我没有错的话,将根据需要生成查询。

与JDBC相同。如果使用PreparedStatement,则查询将在其生命周期中生成一次。几乎两者都是一样的。顺便说一句,您可以选择告诉hibernate您需要在启动ORM引擎时生成查询。在JPA注释中,您可以在@entity注释中使用dynamic = true。

如果您已经在项目中使用了Hibernate / JPA基础结构,那么请使用普通的vanilla JDBC选项。