简述hibernate left join fetch的做用

首先要明白延迟加载lazy的做用。fetch

先简述一下lazy:对象

lazy表示的是该属性是否懒惰加载,默认值是 true,当值为 true 的时候你在查询主对象,不会当即加载该属性值,反之则当即加载。例如:现有实体User有一个地址属性,配置为:<many-to-one name="address" class="com.my.entity.Address" lazy="false"/>,当你在查询User时不会当即加载它的address属性,而是在你用到address属性时它再自动加载,若是你一直没有用到address,那么address属性就一直不会被加载,而当lazy=false时,则是在你查询User时就马上加载它的address属性it

那么fetch至关于在程序里设置了lazy=false,若是在lazy=true中去掉了fetch,那么下面这种语句会报错class

from SysDict as s left join fetch s.parent where s.isEnabled = true order by s.nature, s.order配置

相关文章
相关标签/搜索