mybatisplus or的用法
时间: 2023-10-05 15:15:02 浏览: 310
mybatisplus
在MyBatisPlus中,可以使用or()方法来实现条件的"或"操作。例如,如果你想要查询满足条件A或条件B的数据,可以使用如下代码:
```
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("columnA", valueA).or().eq("columnB", valueB);
List<Entity> entities = entityMapper.selectList(queryWrapper);
```
上述代码中,eq()方法用于添加条件,or()方法表示在添加下一个条件时使用"或"操作。这样,查询结果中将包含满足条件A或条件B的数据。
但是需要注意的是,在使用or()方法时,务必在or()方法之前调用or(true)方法,以确保正确的逻辑运算顺序。例如:
```
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("columnA", valueA).or(true).eq("columnB", valueB);
```
这样可以保证查询结果按照预期的条件组合进行筛选。
如果你希望实现更复杂的条件组合,如(sno = ? ) and ( received_by ='1' or create_by = 'admin' ),可以使用nested()方法来添加括号。示例如下:
```
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("sno", valueSno)
.and(wrapper -> wrapper.eq("received_by", "1").or().eq("create_by", "admin"));
```
在上述代码中,使用and()方法将sno = ? 和后面的条件组合起来,使用nested()方法添加括号,同时在内部的条件中使用or()方法实现"或"操作。这样可以按照期望的条件进行查询。
希望以上内容对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [MyBatisPlus中使用or()和and()遇到的问题及细节处理](https://download.csdn.net/download/weixin_38553466/12821050)[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: 50%"]
- *2* *3* [MybatisPlus使用or关联导致查询条件失效](https://blog.csdn.net/m0_53434091/article/details/128965335)[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: 50%"]
[ .reference_list ]
阅读全文