开发者社区> 问答> 正文

Mybatis支实现延迟加载的原理是什么?

Mybatis支实现延迟加载的原理是什么?

展开
收起
小黄鸭哈哈哈 2021-10-20 15:18:02 495 0
1 条回答
写回答
取消 提交回答
  • 它的原理是,使用CGLIB创建目标对象的代理对象,当调用目标方法时,进入拦截器方法,比如调用a.getB().getName(),拦截器invoke()方法发现a.getB()是null值,那么就会单独发送事先保存好的查询关联B对象的sql,把B查询上来,然后调用a.setB(b),于是a的对象b属性就有值了,接着完成a.getB().getName()方法的调用。这就是延迟加载的基本原理。

    2021-10-20 15:18:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题) 立即下载
Spring框架入门 立即下载
低代码开发师(初级)实战教程 立即下载