使用@Data注解与mybatis的懒加载机制实现一对一关系查询时,发现怎么配置都无效,就是一下都查出来了,根本没有懒加载

1.application.yml配置文件配置如下:

# mybatis 配置内容
mybatis-plus:#config-location: classpath:mybatis-config.xml # 配置 MyBatis 配置文件路径mapper-locations: classpath:mapper/*.xml # 配置 Mapper XML 地址type-aliases-package: com.steven.springboot.datasource.model # 配置数据库实体包路径configuration:map-underscore-to-camel-case: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImpllazy-loading-enabled: trueaggressive-lazy-loading: falselazyLoadTriggerMethods:

2.实体类user.java

package com.steven.springboot.datasource.model;import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("users")
public class UserDO {/*** 用户编号*/private Integer id;/*** 账号*/private String username;/*** 密码*/private String password;private int did;private DeptDO deptDO;
}

3.实体类DeptDO.java

package com.steven.springboot.datasource.model;import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;import java.util.List;/*** @author Steven* @version 1.0* @date 2022/2/25 10:53* @description*/
@Data
@TableName("dept")
public class DeptDO {private Integer id;private String name;private List<UserDO> userDOList;
}

4.映射文件UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.steven.springboot.datasource.mapper.UserMapper"><resultMap id="getUserAndDeptStep" type="UserDO"><id property="id" column="id"/><result property="username" column="username"/><result property="password" column="password"/><result property="did" column="did"/><association property="deptDO" select="com.steven.springboot.datasource.mapper.DeptMapper.getDeptByStep" column="did"/></resultMap><select id="selectUserAndDeptStep" resultMap="getUserAndDeptStep">select * from users where username like concat(#{username},"%") and password=#{password}</select>
</mapper>

5.映射文件DeptMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.steven.springboot.datasource.mapper.DeptMapper"><select id="getDeptByStep" resultType="DeptDO">select * from dept where id=#{id}</select>
</mapper>

6.测试类UserTests.java

package com.steven.springboot.datasource;
import com.steven.springboot.datasource.mapper.UserMapper;
import com.steven.springboot.datasource.model.UserDO;
import
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringbootDataSourceApplication.class)
public class UserTests {@ResourceUserMapper userMapper;@Testpublic void getUserAndDeptByStep() {UserDO userDO=new UserDO();userDO.setUsername("张希");userDO.setPassword("123456");List<UserDO> userDOList = userMapper.selectUserAndDeptStep(userDO);System.out.println(userDOList);}
}


所以解决方案就是两种

  1. 使用@Data同时再重写一遍toString()方法
  2. 不用toString的话,就把@Data拆开

lombok中的@Data注解与MyBatis的懒加载机制冲突解决相关推荐

  1. mybatis 的懒加载原理

    断断续续的阅读 mybatis 的源码有好几个月了,想把自己了解到的一些东西与大家分享.今天给大家分享一下 mybatis 的懒加载原理. mybatis 的懒加载过程挺复杂的,涉及到的东西有很多,包 ...

  2. free mybatis 不生效_关于 Mybatis 设置懒加载无效的问题

    看了 mybatis 的教程,讲到关于mybatis 的懒加载的设置: 只需要在 mybatis 的配置文件中设置两个属性就可以了: 但是经过测试之后发现是无效的,经过一番折腾,发现是因为我在测试的时 ...

  3. Mybatis懒加载机制

    懒加载会按需要是否执行关联查询语句.如果用到了关联查询语句的信息,就需要执行关联查询,否则就只执行主查询 1.在mybatis的全局配置文件中加入两个属性: <settings><s ...

  4. Mybatis学习第四天:Mybatis延迟加载懒加载,一级缓存,二级缓存,注解开发

    文章目录 Mybatis中的延迟加载 一对一进行延迟加载 一对多的延迟加载 缓存机制: 一级缓存 二级缓存 注解开发 注解开发--单表的增删改查 注解开发--建立表与实体类的对应关系 注解开发--多表 ...

  5. MyBatis的懒加载(延迟加载)

    什么是懒加载 所谓懒加载就是按需加载. 例如: 对象模型就是一个订单中持有一个对用户的引用. 当查询订单信息时,暂时不加载用户信息.就延迟加载(懒加载). 什么情况下才能使用懒加载呢? 上面的情况是无 ...

  6. vue2.0中实现div容器里的内容懒加载

    当全部数据加载完毕时: 有以上组件情况,点击查询更多按钮可实现懒加载功能. 主要看userList组件和父组件就可以了. <template><div id="root&q ...

  7. mybatis的懒加载和缓存

    1.懒加载:需要多表查询的时候一般使用分步的单表查询,因为会比关联查询效率高,而分步单表查询的时候有时候不需要某些表的关联信息时,为了优化就可以配置懒加载,(通常将懒加载设置为false,也就是不懒加 ...

  8. lombok 中的@Data注解

    今天看到有代码中的Dao包中的类文件,写的极其简洁,甚至引起了开发工具InteliJ的报错,然后程序还能稳健地跑起来. 1 2 3 4 5 6 7 8 9 import lombok.Data; @D ...

  9. 浏览器是先执行js还是先加载HTML,在HTML中使用JavaScript(浏览器对js的加载机制分析)...

    前言: 向HTML页面中插入JavaScrip的主要方法,就是使用 要点: 1.script标签用外链的src引入文件时,内嵌的js代码无效. 2.只要不存在defer和async属性,浏览器都会按照 ...

最新文章

  1. 10 个开源 Python OpenCV 小项目,YouTube热门
  2. [转载]数据库设计三大范式应用实例剖析
  3. np.logic_and/or/not用法
  4. Windows下安装python的pip
  5. 2.1.2 操作系统之进程的状态(运行、就绪、阻塞、创建、终止)及转换(就绪-运行、运行-就绪、运行-阻塞、阻塞-就绪)
  6. VTK:几何对象之TriangleStrip
  7. 使用Maven创建Web项目后,jsp引入静态文件提示报错。JSP 报错:javax.servlet.ServletException cannot be resolved to a type...
  8. 数据结构链表之栈——解决括号匹配问题和逆波兰表达式求值问题——6
  9. Oscache 概述
  10. c中获取python控制台输出_linux c程序中获取shell脚本输出的实现方法
  11. 求离散数据的突变点_数据的离散程度分析1
  12. Android 系统(210)----Android的.so文件你需要知道那些知识
  13. three.js和php,详解three.js本地运行的方法
  14. Struts2学习笔记(十八) 防止表单重复提交
  15. CenOS6 nginx+pxe+tftpd+samba/nfs+dhcpd 无盘安装windows  linux
  16. DOD,与cisco三层模型
  17. 2022爱分析· 汽车行业数字化厂商全景报告
  18. 第三方rom 6.0刷机后,网络连接叹号处理方法
  19. 第一代电子计算机英语,第一代电子计算机的意思
  20. 浅学 ------ 爬虫(一)

热门文章

  1. URAL 1047 Simple Calculations
  2. 解答: 刷DFT 版 Windows Phone 依然无法越狱安装程序的原因
  3. 使用C#进行Word 2002和Excel 2002编程
  4. 请问如何把.net framework框架集成在安装程序里头?
  5. vue 时间插件_Vue3 插件开发详解尝鲜版「值得收藏」
  6. linux安装php pgsql,Linux下apache php+phppgadmin+postgresql安装配置
  7. list 是什么意思 php,php中list的功能是什么
  8. 域控 批量导入 用户_kerberos域用户提权分析
  9. 怎么获取layer中的表单值_layer获取弹出frame层数据
  10. 原字体_在包装上玩转字体