Mybatis关于延迟加载、按需加载的理解

news/2024/7/4 14:54:55 标签: java, 后端

理解延迟加载、立即加载

延迟加载:在真正使用数据的时候才发起查询,不用的时候不查询。也就是按需加载(懒加载),主要是针对于一对多,多对多关系
立即加载:不管用不用该数据,只要方法被调用,马上发起查询。主要是针对于一对一,多对一关系

启用延迟加载和按需加载

Mybatis配置文件中通过两个属性lazyLoadingEnabled和aggressiveLazyLoading来控制延迟加载和按需加载。

lazyLoadingEnabled:是否启用延迟加载,mybatis默认为false,不启用延迟加载。lazyLoadingEnabled属性控制全局是否使用延迟加载,特殊关联关系也可以通过嵌套查询中fetchType属性单独配置(fetchType属性值lazy或者eager)。

aggressiveLazyLoading:是否按需加载属性,默认值false,aggressiveLazyLoading属性启用时(即设置为true)只要加载对象,就会加载该对象的所有属性;关闭(即设置为false)该属性则会按需加载,即使用到某关联属性时,实时执行嵌套查询加载该属性。
aggressiveLazyLoading在mybatis版本<=3.4.1 默认值为true

configration.xml中修改配置,注册XXXMapper.xml

<mappers>
    <!-- 注册Mapper.xml文件 -->
    <mapper resource="mapper/XXXMapper.xml"></mapper>
</mappers>
    <!-- 启用延迟加载特性,不配置默认关闭该特性-->
    <setting name="lazyLoadingEnabled" value="true"></setting>
    <!-- 按需加载: false:使用关联属性,及时加载;    true,加载对象,则加载所有属性, -->
    <setting name="aggressiveLazyLoading" value="false"/>
</settings>

http://www.niftyadmin.cn/n/927222.html

相关文章

mybaits-plus-generator自动生成实体类

导入所需依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--themleaf--><dependency><groupId>org.springframework.boot&…

docker配置seata分布式事务并注册至nacos

Docker配置分布式事务Seata并注册到Nacos服务中心 Docker常用基础命令 docker ps&#xff1b;查询当前服务器的服务 docker images&#xff1b;查看服务下载的镜像 docker ps -a&#xff1b;查看所有的服务&#xff0c;包含未开启的服务 docker rm 服务ID&#xff1b;在做删除…

TOMCAT+APACHE整合

<script type"text/javascript"> function StorePage() { ddocument; td.selection?(d.selection.type!None?d.selection.createRange().text:):(d.getSelection?d.getSelection():); void(keyitwindow.open(http://www.365key.com/storeit.aspx?tescape(d…

并购之后 新联想面临的四十个难题(转发)--内部管理:大文化与小文化 为谁经营

<script type"text/javascript"> function StorePage() { ddocument; td.selection?(d.selection.type!None?d.selection.createRange().text:):(d.getSelection?d.getSelection():); void(keyitwindow.open(http://www.365key.com/storeit.aspx?tescape(d…

linux 文件锁flock与fcntl 理解建议锁与强制锁区别

​专栏内容&#xff1a; postgresql内核源码分析 手写数据库toadb 并发编程 个人主页&#xff1a;我的主页 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 文件锁 概述 前面博客介绍了多任务下互斥的方法&#xff0c;如…

职场好人缘的26个细节

来自 http://blog.csdn.net/iyu1.长相不令人讨厌&#xff0c;如果长得不好&#xff0c;就让自己有才气&#xff1b;如果才气也没有&#xff0c;那就总是微笑。 2.气质是关键。如果时尚学不好&#xff0c;宁愿纯朴。 3.与人握手时&#xff0c;可多握一会儿。真诚是宝。 4.不必什…

关于三态的TreeView的一些想法

<script type"text/javascript"> function StorePage() { ddocument; td.selection?(d.selection.type!None?d.selection.createRange().text:):(d.getSelection?d.getSelection():); void(keyitwindow.open(http://www.365key.com/storeit.aspx?tescape(d…

在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分

///*标题&#xff1a;在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分当看到.NET中TcpListener和TcpClient的时候,我非常高兴,那就是我想要的通讯模式但是使用之后发现它们的力量太单薄了,我们需要一个更好的类库来替代它们.下面提供了一些类,可以…