官网:https://mybatis-plus-join.github.io/pages/quickstart/js.html
使用的是mybatis plus join进行的查询,这里环境如何搭建就不记录了
数据大致如下,学生表Student和课程表Course多对多关系,StudentCourse是两张表关系表,存储studentId和courseId
两者结合的结果类StudentResult
StudentResult extends Student{
List courseList;
}
大致思路和写SQL一样,先关联查询关系表,然后关联另一张表,不同的是这里使用的是innerJoin函数,selectCollection用于声明多的一方所存储的集合对象。
最后全部代码:
MPJLambdaWrapper<Student> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(Student.class)
.selectCollection(Course.class, StudentResult ::getCourseList)
.innerJoin(StudentCourse.class, StudentCourse::getStudentId, Student::getId)
.innerJoin(Course.class, Course::getId, StudentCourse::getLecturerId);
return baseMapper.selectJoinPage(CommonPageRequest.defaultPage(), TrainCourseResult.class, wrapper);