mybatis plus 根据要求构建sql wrapper

文章目录

要求: 构建sql wrapper

java 复制代码
根据要求构建sql wrapper:
	dto.getProjectId() == null,则 where project_id is null
    dto.getProjectId() != null,则 where project_id ='58b1fad6-adaa-4834-8337-8d438346783a'

错误写法

java 复制代码
 PropertyEntity property = propertyManager.getOne(
                    Wrappers.<PropertyEntity>lambdaQuery()
                            .eq(Objects.nonNull(dto.getProjectId()), PropertyEntity::getProjectId, dto.getProjectId())
                            .eq(StringUtils.isNotEmpty(dto.getCode()), PropertyEntity::getCode, dto.getCode())
                            .eq(StringUtils.isNotEmpty(dto.getName()), PropertyEntity::getName, dto.getName()));

原因: dto.getProjectId() == null,构建的sql是:where project_id = 'null'

解决方案

java 复制代码
  LambdaQueryWrapper<PropertyEntity> wrapper = Wrappers.lambdaQuery(PropertyEntity.class);
            if (dto.getProjectId() == null) {
                wrapper.isNull(PropertyEntity::getProjectId);
            } else {
                wrapper.eq(PropertyEntity::getProjectId, dto.getProjectId());
            }
            wrapper.eq(StringUtils.isNotEmpty(dto.getCode()), PropertyEntity::getCode, dto.getCode())
                    .eq(StringUtils.isNotEmpty(dto.getName()), PropertyEntity::getName, dto.getName());
            PropertyEntity property = propertyManager.getOne(wrapper);
相关推荐
Wave8456 分钟前
非阻塞按键(单击,双击,长按)
数据库
2401_8318249611 分钟前
为你的Python脚本添加图形界面(GUI)
jvm·数据库·python
久违的太阳13 分钟前
记录一次ORACLE RAC安装PSU补丁步骤
数据库·oracle
2401_8796938714 分钟前
用Pygame开发你的第一个小游戏
jvm·数据库·python
一直都在57217 分钟前
Java死锁
java·开发语言
xushichao198923 分钟前
实战:用OpenCV和Python进行人脸识别
jvm·数据库·python
sthnyph35 分钟前
初识MySQL · 库的操作
数据库·mysql
原来是猿36 分钟前
MySQL【视图】
数据库·mysql
2401_873587821 小时前
MySQL——事务管理
数据库·mysql
探索宇宙真理.1 小时前
SiYuan SQL漏洞 | CVE-2026-29073复现&研究
数据库·经验分享·sql·eureka·安全漏洞·siyuan