Mybatis13:延迟加载(懒加载)
延迟加载是分步查询的好处,默认是不开启延迟加载的,要开启需要在核心配置文件中设置全局配置信息
【应当开启,即设置为true】【默认值False】延迟加载的全局开关属性:lazyLoadingEnabled 开启是所有关联对象都会延迟加载
【应该关闭】【默认值False(true<3.4.1)】aggressivelazyloaing 若开启该属性,则任何方法调用都会加载该对象的所有属性;关闭该属性,则每个属性会按需加载
测试
基于学习笔记12(【MyBatis】学习笔记12:通过级联属性赋值解决多对一的映射关系 - 萌狼蓝天 - 博客园 (cnblogs.com))
测试1
如果,设置
<setting name="lazyLoadingEnabled" value="false"/>
如果,设置
<setting name="lazyLoadingEnabled" value="true"/>
测试2
如果,设置
<setting name="lazyLoadingEnabled" value="false"/>
如果,设置
<setting name="lazyLoadingEnabled" value="true"/>
部分特殊情况处理
全局延迟加载开启后,若是部分功能无需延迟加载,则可以按照以下情况操作
属性 fetchType
当开启全局延迟加载之后,可通过此属性手动控制延迟加载效果
参数:
lazy:延迟加载 eager:立即加载
【MyBatis】学习笔记03:配置文件进一步解读(非常重要)