运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

Mybatis-plus 查询条件为空不生效问题及解决

运维开发网 https://www.qedev.com 2022-01-13 09:28 出处:网络 作者: 轻点 别打脸
目录查询条件为空不生效参数不生效查询条件为空不生效 -- mybatis-plus eq方法 default Children eq(R column, Object val) {
目录
  • 查询条件为空不生效
  • 参数不生效

查询条件为空不生效

-- mybatis-plus eq方法
default Children eq(R column, Object val) {
  return this.eq(true, column, val);
}
public Children eq(boolean condition, R column, Object val) {
  return this.addCondition(condition, column, SqlKeyword.EQ, val);
}

以上是mybatis-puls wrapper条件构造器 eq方法源码,由上可见,condition不传递值的时候,条件构造器默认填充的true。

因此,当我们传入的条件,不一定有值时,可以在condition入参位置进行判定,当入参为空或者自定义情况下,条件不生效,否则查询条件都是生效的,即使为空。

例:

wrapper.eq(StringUtil.isNotBlahttp://www.cppcns.comnk(infoVO.getMobile()), MsPlatformInfo::getPhone, infoVO.getMobile());

当infoVO.getMobile()为空时,StringUtil.isNotBlank(infoVO.getMobile()编程客栈)lIHLE = false,这种情况下,此条件在sql执行时不生效

参数不生效

在使用mybatiwww.cppcns.coms-plus 传递参数一直不生效

打印sql 也是不显示该参数

springboot yml文件添加打印lIHLEsql配置

mybatis-plus:
 configuration:
 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志

最后搜到是del_flag参数类型错误!!!

由于传递的是Integer类型,但是在xml里面判断delFlag!=’’

只需要把 delFlag!=’’ 这个条件去掉就可以了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消