mybatis-plus之ne条件判null失效问题

        在使用 MyBatis Plus 的 QueryWrapper LambdaQueryWrapper 时,.ne() 方法用于生成 SQL 中的 不等于(<>) 条件。但 .ne() 并不能直接用于判断 非空( MyBatis Plus 不会将其转换为 SQL 中的 IS NOT NULL) 条件,这是导致 .ne(XXX::getXxx, null) 查询条件失效的原因。

      要实现“字段不为 NULL”的查询条件,需要使用 MyBatis Plus 提供的 .isNotNull(SFunction) 方法:

  .isNotNull(XXX::getXxx); 

总结:


方法
 
SQL 效果 用途
.ne(Entity::getField, value) field <> ? 判断字段不等于某个值
.isNotNull(Entity::getField) field IS NOT NULL 判断字段不为空
.isNull(Entity::getField) field IS NULL 判断字段为空