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);
相关推荐
l1258656 分钟前
# RAG向量数据库优化实战:HNSW索引调参与生产级性能设计
数据库·python·mysql·langchain
梦Arrebol7 分钟前
Mysql内容及相关实验
数据库·mysql
白露与泡影25 分钟前
解密 Pi 的 Harness 工程:Agent 会话如何实现持久化与恢复
java·人工智能·算法
OceanWaves199336 分钟前
mysql 8.0.32 磁盘爆满,清理从库日志
数据库·mysql
凤山老林40 分钟前
数据库读写分离与动态路由实战:Spring Boot + ShardingSphere-JDBC 生产配置
数据库·spring boot·后端·分库分表·sharding-jdbc
Zane19941 小时前
HashMap 为什么要在长度16、容量必须是2的幂这些细节上较劲
java·后端
长谷深风1112 小时前
为什么你的 Tool 总被模型选错?
java·大数据·ai·llm·ai agent·工具设计·agent设计
l1258652 小时前
# RAG噪声知识库治理:一致性与可信度的四层防线设计
数据库·人工智能·python·自然语言处理·langchain
莫得感情 o3 小时前
并发 14 · 收官:虚拟线程与结构化并发
java·并发
聚美智数3 小时前
图片水印-图片剪裁-图片缩放API接口介绍
java·服务器·数据库