lambdaquerywrapper 多表查询
时间: 2023-12-14 09:33:19 浏览: 106
Spring Boot-MybatisPlus表格分页与下拉分页查询.docx
LambdaQueryWrapper可以用于多表查询,可以通过join方法来实现。下面是一个使用LambdaQueryWrapper进行多表查询的例子:
```java
LambdaQueryWrapper<User> wrapper = Wrappers.lambdaQuery();
wrapper.select(User.class, info -> !info.getColumn().equals("password"))
.eq(User::getUsername, "admin")
.nested(i -> i.eq(User::getEnabled, true).or().eq(User::getUsername, "test"))
.inSql(User::getId, "select user_id from user_role where role_id = 1")
.orderByDesc(User::getId)
.last("limit 1");
wrapper.join(UserRole.class, UserRole::getUserId, User::getId)
.eq(UserRole::getRoleId, 1);
List<User> userList = userMapper.selectList(wrapper);
```
上面的例子中,我们使用LambdaQueryWrapper同时查询了User和UserRole两张表,并且使用join方法将它们关联起来。在LambdaQueryWrapper中,我们可以使用select方法来指定查询的列,使用eq方法来指定查询条件,使用inSql方法来指定子查询条件,使用orderByDesc方法来指定排序方式,使用last方法来指定查询的条数等。
阅读全文