MyBatis延迟加载及在spring中集成配置
当你要使用one to one,many to one 就会碰到N+1的问题。很明显,对象之间关联很多有A关联B,B关联C,C关联A这样的关系,如果不是采用延迟加载,很容易一下在出现成千上万对象,造成N+1的问题。
?
而Mybatis 设置延迟加载主要2个属性配置:
?
lazyLoadingEnabled:true使用延迟加载,false禁用延迟加载。默认为true
?
aggressiveLazyLoading:true启用时,当延迟加载开启时访问对象中一个懒对象属性时,将完全加载这个对象的所有懒对象属性。false,当延迟加载时,按需加载对象属性(即访问对象中一个懒对象属性,不会加载对象中其他的懒对象属性)。默认为true
?
?? 加载所有懒对象
?
?? 按需加载对象属性
?
?
对继承spring配置如下:
?
?
?
setting.xml是mybatis全局属性配置文件。
?
?
?
?
?
?
1 楼 PeTiRo 2011-12-27 你好
我的配置是 [按需加载对象属性]
group 是 User 对象的一个 属于 One2One的
后台报这 An attempt has been made to read a not loaded lazy property 'group' of a disconnected object 异常 2 楼 PeTiRo 2011-12-27 补上:
第一次 执行 查询 user的方法是会 延时加载的
但再进行 一次 查询 user的方法的时候 就会上面那异常