mybatis-plus notIn 忽略空
时间: 2023-07-11 12:34:15 浏览: 168
如果你使用 MyBatis-Plus 的 notIn 方法进行查询时,如果传入的参数为空,会抛出 NullPointerException 异常。为了避免这种情况,你可以使用 MyBatis-Plus 提供的 Wrappers 工具类中的 lambdaQuery 方法,手动构建查询条件,然后在查询时将其传入,如下所示:
```java
List<Integer> ids = new ArrayList<>();
ids.add(1);
ids.add(2);
ids.add(null);
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.lambda().notIn(User::getId, ids.stream().filter(Objects::nonNull).collect(Collectors.toList()));
List<User> userList = userMapper.selectList(wrapper);
```
在上面的例子中,我们手动构建了一个 QueryWrapper 对象,然后使用 lambdaQuery 方法构建了查询条件,最后调用 notIn 方法进行查询。由于我们使用了 filter 方法过滤了空值,因此即使传入的 ids 中包含空值,也不会抛出异常。
阅读全文