Mybatis延迟加载
/* *作者:呆萌老师 *☑csdn认证讲师 *☑51cto高级讲师 *☑腾讯课堂认证讲师 *☑网易云课堂认证讲师 *☑华为开发者学堂认证讲师 *☑爱奇艺千人名师计划成员 *在这里给大家分享技术、知识和生活 *各种干货,记得关注哦! *vx:it_daimeng */
1.什么是延迟加载 (懒加载)
resultMap中的association和collection标签具有延迟加载的功能。
延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息。使用关联信息时再去加载关联信息。
2.设置延迟加载
需要在配置文件中,在<settings>标签中设置下延迟加载。
lazyLoadingEnabled、aggressiveLazyLoading
设置项 |
描述 |
允许值 |
默认值 |
lazyLoadingEnabled |
全局性设置懒加载。如果设为‘false’,则所有相关联的都会被初始化加载。 |
true | false |
false |
aggressiveLazyLoading |
当设置为‘true’的时候,懒加载的对象可能被任何懒属性全部加载。否则,每个属性都按需加载。 |
true | false |
true |
<!--
开启延迟加载 -->
<settings>
<!-- lazyLoadingEnabled:延迟加载启动,默认是false 相当于是否开启延迟加载 -->
<setting name="lazyLoadingEnabled" value="true" />
<!--aggressiveLazyLoading:积极的懒加载,falsed话按需加载,3.4.1(包含)之前为true,之后为false -->
<setting name="aggressiveLazyLoading" value="false"/>
<!--
开启二级缓存,默认是false -->
<setting name="cacheEnabled" value="true"/>
</settings>