启用延迟加载和按需加载
Mybatis配置文件中通过两个属性lazyLoadingEnabled和aggressiveLazyLoading来控制延迟加载和按需加载。
lazyLoadingEnabled:是否启用延迟加载,mybatis默认为false,不启用延迟加载。lazyLoadingEnabled属性控制全局是否使用延迟加载,特殊关联关系也可以通过嵌套查询中fetchType属性单独配置(fetchType属性值lazy或者eager)。
aggressiveLazyLoading:是否按需加载属性,默认值false,aggressiveLazyLoading属性启用时(即设置为true)只要加载对象,就会加载该对象的所有属性;关闭(即设置为false)该属性则会按需加载,即使用到某关联属性时,实时执行嵌套查询加载该属性。
configration.xml中修改配置,注册XXXMapper.xml
<settings> <!-- 启用延迟加载特性,不配置默认关闭该特性--> <setting name="lazyLoadingEnabled" value="true"></setting> <!-- 按需加载: false:使用关联属性,及时加载; true,加载对象,则加载所有属性, --> <setting name="aggressiveLazyLoading" value="false"/> </settings> <mappers> <!-- 注册Mapper.xml文件 --> <mapper resource="mapper/XXXMapper.xml"></mapper> </mappers>