问题描述
我在导出2000条记录的excel时,Hibernate产生了2001条SQL....郁闷。我要导出系统中所有的User,该User关联了机构表UserOrg.我要导出的字段有:User.name 和 UserOrg.name。于是Hibernate先用一条Sql取出2000个User,然后产生了2000条语句去取UserOrg。。。。User与Userorg是多对一的关系。感觉这样是不是效率方面很有问题...请问大家有什么好方法吗? 问题补充:<div class="quote_title">aabcc 写道</div><div class="quote_div">left join</div><br /><br />select User from User User ,UserOrg UserOrg where ......<br /><br />这样写还是会造成2001条SQL吧?<br />
解决方案
那就设成 true,然后用 left join fetch 去 查,你会看到 Hibernate帮你生成的SQL 是 一条 left join on 的,然后 你的UserOrg里面 有值
解决方案二:
你不会把 lazy 设成 false了吧?
解决方案三:
上面写错了select User from User u left join fetch u.UserOrg uo where u.UserOrg.uoid = uo.uoid
解决方案四:
select User from User u left join u.UserOrg uo where u.uoid = uo.uoid
解决方案五:
left join