lambdaquerywrapper or拼接 等于null
时间: 2025-01-05 16:11:31 浏览: 9
### 使用 LambdaQueryWrapper 进行 OR 拼接并检查字段是否等于 null
在 MyBatis Plus 中,`LambdaQueryWrapper` 提供了一种更简洁的方式来构建查询条件。对于复杂的查询需求,比如使用 `OR` 关键字连接多个条件以及判断字段是否为空(`NULL`),可以按照以下方式操作。
#### 构建带有 OR 和 NULL 判断的查询条件
为了实现这一点,在创建 `LambdaQueryWrapper` 实例之后调用相应的方法即可完成逻辑表达式的组装:
```java
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import java.util.List;
public class Example {
public List<User> getUsersWithOrAndNullCheck() {
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
// 添加 or 条件,并且其中一个条件是检查字段是否为 null
wrapper.or(i -> i.isNull(User::getAge).or().eq(User::getName, "John"));
return userMapper.selectList(wrapper);
}
}
```
这段代码展示了如何通过链式调用来设置复合条件[^1]。这里特别注意的是 `or()` 方法允许连续添加更多基于当前分支的新条件,而不会影响其他已经设定好的部分[^2]。
当涉及到具体业务场景时,可以根据实际需要调整所使用的实体类属性名称及其对应的操作符。例如上面的例子中,如果想要查找名字叫 John 或者年龄未填写(即数据库记录里 Age 字段值为 NULL)的所有用户,则可参照上述写法[^3]。
阅读全文