记录一次mybatis-plus-join的三表一对多关联查询

官网: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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值