在导出excel时Hibernate产生的SQL的效率问题

我在导出2000条记录的excel时,Hibernate产生了2001条SQL....郁闷。

我要导出系统中所有的User,该User关联了机构表UserOrg.我要导出的字段有:User.name 和 UserOrg.name。

于是Hibernate先用一条Sql取出2000个User,然后产生了2000条语句去取UserOrg。。。。User与Userorg是多对一的关系。

感觉这样是不是效率方面很有问题...请问大家有什么好方法吗?

5个回答

那就设成 true,然后用 left join fetch 去 查,你会看到 Hibernate帮你生成的SQL 是 一条 left join on 的,然后 你的UserOrg里面 有值

left join

select User from User u left join u.UserOrg uo where u.uoid = uo.uoid

上面写错了

select User from User u left join fetch u.UserOrg uo where u.UserOrg.uoid = uo.uoid

你不会把 lazy 设成 false了吧?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问