Hibernate相同查询多个别名和性能问题

时间:2012-08-29 18:46:03

标签: java sql performance spring hibernate

有人可以解释为什么Hibernate会为同一个查询生成不同的别名吗?(ABC1_25,ABC1_27 ......)

如何配置Hibernate以重用具有相同别名的相同查询?如何缓存查询或使查询最佳?

我正在使用的应用程序生成具有不同别名的相同查询,如下所示:

 SELECT abc0_.ATTR_ID AS ABC1_25_,
     abc0_.ALLOW AS ALLOW2_25_,
     abc0_.ALTER_DATE AS ALTER3_25_,
     abc0_.CREATE_DATE AS CREATE6_25_,
 FROM ABCTABLE abc0_
 WHERE abc0_._ID = :1

 SELECT abc0_.ATTR_ID AS ABC1_27_,
     abc0_.ALLOW AS ALLOW2_27_,
     abc0_.ALTER_DATE AS ALTER3_27_,
     abc0_.CREATE_DATE AS CREATE6_27_,
 FROM ABCTABLE abc0_
 WHERE abc0_._ID = :1

这会导致处理器和内存消耗。

我遇到了这个链接: Hibernate produce different SQL for every query但未找到答案。

1 个答案:

答案 0 :(得分:2)

也许您有SessionFactory的多个实例,而不是使用单例。这就是另一个问题的OP所发现的。