0

我有一个像这样的 HQL 查询:

Select  
... (around 40 items)...
from 
ATable a 
left outer join a.subA SubA 
left outer join a.subB SubB 
left outer join a.Names Names 
left outer join Names.Addresses Addresses 
left outer join Names.Phones Phones 
left outer join a.Roles Roles 
where 
a.aType.someType in ('...') 
and (Names.id.FKey in('...') or Names.id.FKey is null)  
and upper(a.pin) like upper('some%')  
and upper(Names.lastName) like upper('Some%')  
order by  a.pin    asc  

由于某种原因,这会超时,但使用 Toad 时由 hibernate 生成的查询(取自日志)需要 5 秒才能执行。我是hibernate的新手。我感谢任何帮助优化此谢谢。

4

1 回答 1

0

我可以建议的有两件事是:

1]避免使用'IN'子句。2] 如果没有必要,避免使用 order by。

阿米特:)

于 2013-09-10T14:08:37.000 回答