mybatis延迟加载
延时加载的类型和设定
通过对全局参数:lazyLoadingEnabled进行设置,默认就是false。 进行设置修改延时加载状态。
<settings>
<!-- 延迟加载总开关 默认为false-->
<setting name="lazyLoadingEnabled" value="false"/>
</settings>
直接加载: 执行完对主加载对象的select语句,马上执行对关联对象的select查询。
1.侵入式延迟:
lazyLoadingEnabled设置为:true
aggressiveLazyLoading设置为:true
<!-- 配置常用设置 -->
<settings>
<!-- 开启延迟加载 -->
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="true"/>
</settings>
- 侵入式延迟: 执行对主加载对象的查询时,不会执行对关联对象的查询。但当要访问主加载对象的某个属性(该属性不是关联对象的属性)时,就会马上执行关联对象的select查询。
2.深度延迟:
lazyLoadingEnabled设置为:true
aggressiveLazyLoading设置为:false
<!-- 配置常用设置 -->
<settings>
<!-- 开启延迟加载 -->
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
- 深度延迟:访问第一步查询中有的属性时,不会执行关联查询。只有访问第一次查询没有属性才会执行关联属性