我是靠谱客的博主 沉静御姐,这篇文章主要介绍mybatis是否支持延迟加载,如果支持他的实现原理是什么?,现在分享给大家,希望可以做个参考。

1.mybatis仅支持关联对象association和关联集合对象collection的延迟加载,association是一对一,collection指的是一对多查询,在mybatis配置文件中可以配置lazyloadingEnable=true/false.
2.原理:使用CGLIB为目标对象建立代理对象,当调用目标对象的方法时进入拦截器方法。比如调用a.getb().getName(),拦截器方法invoke()发现a.getb()为null值,会单独发送事先保存好的查询关联b对象的sql语句,把b查询上来然后调用a.setB(b),于是a的对象的属性b就有值了,然后接着调用a.getb().getName(),这就是延迟加载的原理。

最后

以上就是沉静御姐最近收集整理的关于mybatis是否支持延迟加载,如果支持他的实现原理是什么?的全部内容,更多相关mybatis是否支持延迟加载,如果支持他内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部