mybatis-plus selectPage与一对多查询时存在问题。
1.1实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("sys_class")
public class ClassInfo {
@TableId(type = IdType.AUTO)
private Integer id;
private String grade;
private String className;
private String classNickname;
private String ratedNum;
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createTime; //创建时间
@TableField(fill = FieldFill.UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date updateTime; //更新时间
@TableField(exist = false) // 属性字段在表中不存在
private List studentList; //该班级的学生
@TableField(exist = false) // 属性字段在表中不存在
private List teacherList; //管理该班级的教师
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("sys_student")
public class Student {
@TableId(type = IdType.AUTO)
private Integer id;
private String name;
private String username;
private String password;
private SexEnum sex;
private Date birth;
private Date schoolDate;
private Integer classId;
private String portrait; //头像
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; //创建时间
@TableField(fill = FieldFill.UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; //更新时间
@TableField(exist = false)// 属性字段在表中不存在
private ClassInfo classInfo;//当前学生的班级
@TableField(exist = false) // 属性字段在表中不存在
private List familyList; //当前学生的家长
}
1.2ClassInfoMapper.java
public interface ClassInfoMapper extends baseMapper{ // 一对多查询 Page findPage(Page page, @Param("className") String className); //所有班级id @Select("select id from sys_class") List getClassIds(); }
1.3原mapper.xml如下:
-- as别名与column一致,column与mysql表字段一致,property与java实体一致
1.4原查询结果:
2.解决方案:分两次sql查询:
附:多对多查询
表结构:sys_student,sys_family,中间表sys_student_family
select s.id,s.name,s.sex,s.portrait
from sys_student s
where s.name like concat('%',#{name},'%')
select f.id,f.name,f.sex,f.portrait
from sys_family f join sys_student_family sf
where f.id = sf.family_id
and #{id} = sf.student_id
查询结果:



