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);
相关推荐
4311媒体网几秒前
Libvio.link 页面布局与数据分布
java·php
Coding_Doggy1 分钟前
服务器迁移 | psql大批量数据以及navicat重新连接、conda 环境迁移
linux·数据库·人工智能
橘子132 分钟前
MySQL连接(十四)
数据库·mysql
奋斗的小方4 分钟前
01 一文读懂UML类图:核心概念与关系详解
java·uml
m0_706653234 分钟前
用Python创建一个Discord聊天机器人
jvm·数据库·python
长安城没有风9 分钟前
Java 高并发核心编程 ----- 线程池原理与实践(上)
java·juc
Remember_9939 分钟前
Spring 核心原理深度解析:Bean 作用域、生命周期与 Spring Boot 自动配置
java·前端·spring boot·后端·spring·面试
渡我白衣14 分钟前
【MySQL基础】(2):数据库基础概念
数据库·人工智能·深度学习·神经网络·mysql·机器学习·自然语言处理
风流倜傥唐伯虎14 分钟前
java多线程打印
java·多线程
80530单词突击赢18 分钟前
云原生时代:.NET与Java的K8s进化论
java