SpringBoot MybatisPlus selectOne的坑

目录

一、问题

二、问题解决

三、其他方法


一、问题

selectOne在查询多条数据时会报错,查询语句并不会加 limit 1。

复制代码
One record is expected, but the query result is multiple records。

二、问题解决

在QueryWrapper上添加如下:

java 复制代码
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq(SysTenant.COL_USERNAME, username)
                .or().eq(SysTenant.COL_PHONE, username)
                .or().eq(SysTenant.COL_EMAIL, username)
                .last("limit 1");
        return mapper.selectOne(queryWrapper);

这样不但查询时会只查一条提升性能,selectOne也不再报错。

三、其他方法

java 复制代码
 //查询到多条数据的情况下只取第一条
 FileDto fileDto = fileMapper.selectOne(queryWrapper);//这个报异常
   
 
 FileDto fileDto1 = getOne(queryWrapper, false);//不抛出异常,从多个结果去一条并记录日志

产生原因:

使用selectOne方法查询数据库,在数据中发现多条数据,然后出现报错。

解决:替换IServer中的getOne方法,

getOne(queryWrapper,Boolean)

Boolean

true :抛出异常

false:不抛出异常,从多个结果中取一条并记录日志即可。

总结到此!

相关推荐
黎雁·泠崖12 分钟前
Java&C语法对比:分支与循环结构核心全解析
java·c语言
鹿角片ljp18 分钟前
Java IO流案例:使用缓冲流恢复《出师表》文章顺序
java·开发语言·windows
毕设源码-郭学长21 分钟前
【开题答辩全过程】以 广告投放管理系统为例,包含答辩的问题和答案
java
小北方城市网31 分钟前
SpringBoot 集成 RabbitMQ 实战(消息队列解耦与削峰):实现高可靠异步通信
java·spring boot·python·微服务·rabbitmq·java-rabbitmq·数据库架构
java_t_t35 分钟前
Maven插件apiscan介绍与使用
java·maven·api文档·maven插件
程序员老徐37 分钟前
SpringBoot嵌入Tomcat注册Servlet、Filter流程
spring boot·servlet·tomcat
带刺的坐椅43 分钟前
FastJson2 与 SnackJson4 有什么区别?
java·jsonpath·fastjon2·snack4
linweidong1 小时前
C++如何避免 ODR(One Definition Rule)冲突?
java·jvm·c++
毅炼1 小时前
hot100打卡——day09
java·leetcode
蓝眸少年CY1 小时前
(第七篇)spring cloud之Hystrix断路器
spring·spring cloud·hystrix