mybatis-plus notIn 怎么不排除空的字段
时间: 2024-03-10 22:49:51 浏览: 109
如果你想在 MyBatis-Plus 的 notIn 方法中包含空值字段,可以使用 `Null` 类型来代替空值。例如,将 null 值转换成 `Null` 类型的对象,如下所示:
```java
List<Object> idList = new ArrayList<>();
idList.add(1);
idList.add(2);
idList.add(new Null());
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.notIn("id", idList);
List<User> userList = userMapper.selectList(wrapper);
```
在上面的代码中,我们将 null 值转换成 `Null` 类型的对象,并将这个对象添加到 idList 中。然后,在构建查询条件时,我们使用 notIn 方法进行查询,MyBatis-Plus 不会自动过滤掉 `Null` 类型的对象。因此,即使 idList 中包含了 `Null` 类型的对象,也会对查询结果产生影响。
需要注意的是,`Null` 对象是 MyBatis-Plus 提供的一个特殊类型,用于代表空值。如果你想要在 notIn 方法中包含空值字段,需要将空值转换成 `Null` 类型的对象。
相关问题
mybatis-plus notIn会排除空的字段
是的,MyBatis-Plus 的 notIn 方法会自动排除空值的字段。在不排除空值的情况下,如果传入的参数集合中包含空值,则会抛出 NullPointerException 异常。因此,MyBatis-Plus 在实现 notIn 方法时,会自动过滤掉传入参数集合中的空值。
例如,假设我们有一个 User 表,其中有一个状态字段 status,我们想要查询状态不为 1、2、3 的用户,我们可以使用 notIn 方法进行查询,如下所示:
```java
List<Integer> statusList = new ArrayList<>();
statusList.add(1);
statusList.add(2);
statusList.add(3);
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.notIn("status", statusList);
List<User> userList = userMapper.selectList(wrapper);
```
在上面的代码中,我们传入了一个 statusList 集合,其中包含了 1、2、3 这三个值。MyBatis-Plus 会自动过滤掉这个集合中的空值,不对其进行查询。因此,即使 statusList 中包含空值,也不会对查询结果造成影响。
mybatis plus notin
在MyBatis Plus中,使用.notIn()方法可以实现not in的功能。例如:wrapper.notIn("字段名", 值1, 值2, ...)可以将指定字段的值排除在查询结果之外。这样可以筛选出不包含指定值的数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [mybatisplus 增删改查&使用技巧](https://blog.csdn.net/qq_37570710/article/details/122443318)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文