另外hibernate3里可以在HQL里明确指定fetch:
"From Student as s JOIN FETCH s.classz"
表示查询Student的时候,采用外联结方式查询classz表。
在这里补充说明一下,为什么有时需要外联结查询。
举例说明:
有2个表User 和 Contact两个对象分别对应数据库中 用户 和 联系地址 两张表。User 和 Contact是一对一关联。如果不采用外联结查询的话,问题就出现了,如果
1. From User where rownum < 100,
这时就会:
先执行:
select * from user
然后针对每个user执行
select * from contact where user_id=?