Mybatis中的延迟加载
问题:
查询用户是,用户下的账户信息应该是什么时候使用什么时候查询。
查询账户信息是,账户的所属用户信息应该是立即查询出来。
延迟加载
在真正使用时发起查询,不使用时不查询,按需加载(懒加载)
立即加载
不管用不用,只要一调用立即发起查询
一对一实现延迟加载
首先在AccountDao.xml中将resultMap属性做一下修改
select属性值是调用的查询user的方法
1 2 3 4 5 6 7 8 9 10 11 12 然后在SqlConfig.xml中加入settings配置lazyLoadingEnabled:延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置 fetchType 属性来覆盖该项的开关状态。默认值为false
aggressiveLazyLoading:开启时,任一方法的调用都会加载该对象的所有延迟加载属性。 否则,每个延迟加载属性会按需加载(参考 lazyLoadTriggerMethods)。默认值为false