Mybatis 是否支持延迟加载?如果支持,它的实现原理是 什么?

Posted 咔啡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis 是否支持延迟加载?如果支持,它的实现原理是 什么?相关的知识,希望对你有一定的参考价值。

Mybatis 仅支持 association 关联对象和 collection 关联集合对象的延迟加

载,association 指的就是一对一,collection 指的就是一对多查询。在 Mybatis

配置文件中,可以配置是否启用延迟加载 lazyLoadingEnabled=true|false。

它的原理是,使用 CGLIB 创建目标对象的代理对象,当调用目标方法时,进入拦

截器方法,比如调用 a.getB().getName(),拦截器 invoke()方法发现 a.getB()是

对于写请求,这些

请求会同时发给其他 zookeeper 机器并且达成一致后,请求才会返回成功。因此,

随着 zookeeper 的集群机器增多,读请求的吞吐会提高但是写请求的吞吐会下降。

有序性是 zookeeper 中非常重要的一个特性,所有的更新都是全局有序的,每个

更新都有一个唯一的时间戳,这个时间戳称为 zxid(Zookeeper Transaction Id)。

而读请求只会相对于更新有序,也就是读请求的返回结果中会带有这个

zookeeper 最新的 zxid。

以上是关于Mybatis 是否支持延迟加载?如果支持,它的实现原理是 什么?的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis是否支持延迟加载?

MyBatis应用开发(18)延迟加载之延迟加载触发方法(lazyLoadTriggerMethods)

mybatis 延迟加载

MyBatis应用开发(16)延迟加载之概念

使用MyBatis 3和Java进行延迟加载

mybatis 的二级缓存与延迟加载什么时候用