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);
相关推荐
The_SkyUzi3 分钟前
【无标题】
java·maven
IndulgeCui8 分钟前
KES集群部署安装问题记录
数据库
Yilena13 分钟前
通过mysqldump进行数据迁移时权限不足的解决方案
数据库·学习
韩立学长20 分钟前
基于Springboot酒店管理系统的设计与实现c12044zy(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
han_hanker21 分钟前
统一拦截异常 @RestControllerAdvice
java·开发语言·数据库
忘记92636 分钟前
什么是spring boot
java·spring boot·后端
Hello World呀38 分钟前
Java实现手机号和身份证号脱敏工具类
java·开发语言
曹牧41 分钟前
Java:serialVersionUID
java·开发语言
herinspace43 分钟前
管家婆软件年结存后快马商城操作注意事项
服务器·数据库·windows
雨中飘荡的记忆1 小时前
Spring事件机制:解耦利器与实战
spring