MyBatis Plus用criteria 进行四表联查
时间: 2024-02-10 08:44:00 浏览: 130
MyBatis Plus提供的Criteria类是用于构建查询条件的,它并不支持多表联查。如果需要进行多表联查,可以使用MyBatis Plus提供的Wrapper类,或者使用MyBatis原生的SQL语句。
下面是使用Wrapper类进行四表联查的示例代码:
```
QueryWrapper<User> userWrapper = new QueryWrapper<>();
userWrapper.select("user.id", "user.name", "dept.name")
.eq("user.status", 1)
.eq("dept.type", "IT")
.eq("role.name", "admin")
.inSql("user.dept_id", "select id from dept where parent_id = 1");
userWrapper.join("dept", "user.dept_id = dept.id")
.join("user_role", "user.id = user_role.user_id")
.join("role", "user_role.role_id = role.id");
List<Map<String, Object>> userList = userMapper.selectMaps(userWrapper);
```
在上面的代码中,我们使用QueryWrapper构建查询条件,并且使用select方法指定需要查询的字段。然后使用join方法进行多表联查,最后使用selectMaps方法查询结果。
需要注意的是,在进行多表联查时,需要使用别名来指定表名,否则可能会出现SQL语句错误。
阅读全文