mybatis plus LambdaQueryWrapper leftjoin 排除多个字段
时间: 2023-10-14 21:26:38 浏览: 131
可以使用 `select` 方法来指定查询的字段,排除不需要的字段。
例如,假设有两个表 `user` 和 `order`,需要查询用户表中的所有用户,以及他们的订单数量。但是不需要查询订单表中的其他字段,只需要查询订单数量。可以使用以下代码:
```
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.select(User.class, info -> !info.getColumn().equals("password") && !info.getColumn().equals("createTime"))
.leftJoin(Order.class, Order::getUserId, User::getId)
.groupBy(User::getId)
.select(User::getId, User::getName, User::getAge, count(Order::getId).as("orderCount"));
List<User> userList = userMapper.selectList(wrapper);
```
在上面的代码中,使用 `select` 方法来指定查询的字段,其中 `info.getColumn()` 方法可以获取当前字段的名称,然后判断是否为需要排除的字段,如果是就返回 `false`,否则返回 `true`。最后使用 `count` 方法来统计订单数量,并使用 `as` 方法来设置别名为 `orderCount`。
注意,`select` 方法需要在 `leftJoin` 方法之前调用,否则会抛出异常。
阅读全文