当我们在遇到有or条件的时候,我们的mybatisplus的lamdaquery的表达式的编写方式如下。
带有or条件的语句以及多条件查询的写法
–正确写法–
List<User> list = this.lambdaQuery()
.eq(User::getDelFlag, "10")
.and(w->w.isNull(User::getCode)
.or()
.eq(User::getName, "")
).list();
--生成的sql:select * from user where delflag = '10' and (code isnull or name = '')
–错误写法—
List<User> list = this.lambdaQuery()
.eq(User::getDelFlag, "10")
.isNull(User::getCode)
.or()
.eq(User::getName, "")
.list();
--生成的sql:select * from user where delflag = '10' and code isnull or name = ''