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);
相关推荐
toooooop8几秒前
thinkphp查询数据表最后的自增id
前端·javascript·数据库
Zzzzmo_3 分钟前
SpringBoot 日志
java·spring boot·spring
风哥2号4 分钟前
数据库教程FGMT19‑Oracle多租户容器架构与新特性总结
数据库·oracle·架构
hai_android7 分钟前
Android JNI 示例详解:Java 与 C++ 互调演示
android·java
小白说大模型7 分钟前
《FDE前沿部署工程师实战教程》企业 Agent 项目实战:从需求分析到 PoC 落地
人工智能·spring·机器学习·自然语言处理·chatgpt·数据挖掘·需求分析
geovindu8 分钟前
java: Strategy Pattern
java·开发语言·后端·设计模式·策略模式·行为模式
garmin Chen9 分钟前
MySQL精简面试题
数据库·后端·mysql·面试
anxiao_m11 分钟前
局域网文件传输工具有哪些?4款主流工具实测对比测评
大数据·网络·数据库
yimindev15 分钟前
从 BI 到 Agent:我如何用 Java 打造一个轻量级数据库语义网关 DatI
java
墨香幽梦客17 分钟前
API集成中的高可用(HA)设计:如何避免单点故障拖垮业务?
数据库