您的位置:首页 > 博客中心 > 互联网 >

MyBatis封装对象内的List出现的问题

时间:2022-05-11 10:12

对象举例:

class User {
  private String username;
  private List wifes;
}
class Wife {

}

1. 问题

封装出的List长度数据不正确
比如wifes数据应该有两条,但是查询出来只有一条

2. 原因

由于使用Mybatis-plus的分页

    
        
        
    
    
        
            
            
        
    

sql:

    

如果采用collection封装的话
此时还是会查询出所有的数据
例如:

2. sql


    
    
    

此时分页的时候,分页操作只会作用在User上,而对Wife没有影响

3. sql解析

首先在mapper调用getAllUser后,会分页查询用户表,
当查询到第一个用户username时将其封装到UserWithWifes,
封装到wifes字段时,去执行子查询找到selectUserWifes方法,
然后根据column对应的user_id去做where查询,并把查询的结果封装成一个List,
最后将封装完成的List 封装到 UserWithWifes的wifes中,之后再查询到第二个用户username2,继续。。。

如果喜欢这篇文章的话,给小编点个大大的点赞好嘛

本类排行

今日推荐

热门手游