lombok中的@Data注解与MyBatis的懒加载机制冲突解决
生活随笔
收集整理的這篇文章主要介紹了
lombok中的@Data注解与MyBatis的懒加载机制冲突解决
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
使用@Data注解與mybatis的懶加載機制實現(xiàn)一對一關(guān)系查詢時,發(fā)現(xiàn)怎么配置都無效,就是一下都查出來了,根本沒有懶加載
1.application.yml配置文件配置如下:
# mybatis 配置內(nèi)容 mybatis-plus:#config-location: classpath:mybatis-config.xml # 配置 MyBatis 配置文件路徑mapper-locations: classpath:mapper/*.xml # 配置 Mapper XML 地址type-aliases-package: com.steven.springboot.datasource.model # 配置數(shù)據(jù)庫實體包路徑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);} }
所以解決方案就是兩種
總結(jié)
以上是生活随笔為你收集整理的lombok中的@Data注解与MyBatis的懒加载机制冲突解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot接口参数校验
- 下一篇: 05丨数据同步:主从库如何实现数据一致