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);
相关推荐
时差95312 分钟前
【面试题】Hive 查询:如何查找用户连续三天登录的记录
大数据·数据库·hive·sql·面试·database
让学习成为一种生活方式13 分钟前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
晨曦_子画19 分钟前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
Mephisto.java20 分钟前
【大数据学习 | kafka高级部分】kafka的优化参数整理
大数据·sql·oracle·kafka·json·database
秋意钟40 分钟前
MySQL日期类型选择建议
数据库·mysql
南宫生42 分钟前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法
山海青风1 小时前
第七篇: BigQuery中的复杂SQL查询
sql·googlecloud
Heavydrink1 小时前
HTTP动词与状态码
java
ktkiko111 小时前
Java中的远程方法调用——RPC详解
java·开发语言·rpc
计算机-秋大田1 小时前
基于Spring Boot的船舶监造系统的设计与实现,LW+源码+讲解
java·论文阅读·spring boot·后端·vue