返回顶部
首页 > 资讯 > 数据库 >mybatis-plus LambdaQueryWrapper之判断值是否存在,存在则加入查询,反之亦然
  • 243
分享到

mybatis-plus LambdaQueryWrapper之判断值是否存在,存在则加入查询,反之亦然

mybatisjavamysql 2023-08-20 16:08:15 243人浏览 独家记忆
摘要

需求如下: 如果:如果设置值的时候,值为空则不执行查询语句 代码: 当isDeleted为null的时候 @Test void method() { Integer isDeleted = null; La

需求如下:
如果:如果设置值的时候,值为空则不执行查询语句

代码:
当isDeleted为null的时候

@Test    void method() {        Integer isDeleted = null;        LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();        queryWrapper.eq(!ObjectUtils.isEmpty(isDeleted),DeviceBrand::getIsDeleted,isDeleted);        log.info(String.valueOf(queryWrapper));    }

调试结果:

此时expression里面的nORMal size == 0

当isDeleted为1的时候

@Test    void method() {        Integer isDeleted = 1;        LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();        queryWrapper.eq(!ObjectUtils.isEmpty(isDeleted),DeviceBrand::getIsDeleted,isDeleted);        log.info(String.valueOf(queryWrapper));    }

此时expression里面的normal size == 3

于是乎我翻了一下mybatis-plus源码
在这里插入图片描述

 protected Children addCondition(boolean condition, R column, SqlKeyword sqlKeyword, Object val) {        return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(column), sqlKeyword,            () -> formatParam(null, val)));    }    protected final Children maybeDo(boolean condition, DoSomething something) {        if (condition) {            something.doIt();        }        return typedThis;    }

如果condition为 true则执行右边的函数,为false则反之

来源地址:https://blog.csdn.net/qq_43375661/article/details/126877725

您可能感兴趣的文档:

--结束END--

本文标题: mybatis-plus LambdaQueryWrapper之判断值是否存在,存在则加入查询,反之亦然

本文链接: https://lsjlt.com/news/376518.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作