我是靠谱客的博主 俭朴帆布鞋,这篇文章主要介绍9_Mybatis 是否支持延迟加载,实现原理是什么?,现在分享给大家,希望可以做个参考。

1.Mybatis仅支持association关联对象和collection关联集合对象的延迟加载
	association 指的就是一对一查询
	collection  指的就是一对多查询
	
	在Mybatis配置文件中,可以配置是否启用延迟加载 
	lazyLoadingEnabled=true|false
 
 2.原理是:
 	使用 CGLIB 创建目标对象的代理对象
 	当调用目标方法时,进入拦截器方法
 	调用 a.getB().getName(),拦截器 invoke()方法发现 a.getB()null 值
 	那么就会单独发送事先保存好的查询关联B对象的sql
 	把B查询上来,然后调用 a.setB(b)
 	于是a的对象b属性就有值了
 	接着完成a.getB().getName()方法的调用

1.Mybatis仅支持association关联对象和collection关联集合对象的延迟加载
association 指的就是一对一查询
collection 指的就是一对多查询
在Mybatis配置文件中,可以配置是否启用延迟加载
lazyLoadingEnabled=true|false

2.原理是:
使用 CGLIB 创建目标对象的代理对象
当调用目标方法时,进入拦截器方法
调用 a.getB().getName(),拦截器 invoke()方法发现 a.getB()是 null 值
那么就会单独发送事先保存好的查询关联B对象的sql
把B查询上来,然后调用 a.setB(b)
于是a的对象b属性就有值了
接着完成a.getB().getName()方法的调用

最后

以上就是俭朴帆布鞋最近收集整理的关于9_Mybatis 是否支持延迟加载,实现原理是什么?的全部内容,更多相关9_Mybatis内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部