fetch的属性值有:select(默认值)、join、subselect
1)当fetch=”select”时,程序会先查询返回要查询的主体对象,然后根据lazy属性看是否懒加载。
2)当fetch=”join”时,程序会将主体对象和关联对象用一句连接查询的sql同时查询出来,这样以来,懒加载就无用武之地了。
3)
subselect和select一样,不会一开始就将关联对象查出来。
subselect与select的区别:
设置不执行懒加载;
select是根据关联外键的id,每一个对象发一个select查询,获取关联的对象。
执行的sql如下所示:
而subselect是发送两条sql语句,一条是查询主体对象,而另一条是抓取在前面查询到的所有实体对象的关联集合。
执行的sql如下所示: