org.apache.ibatis.exceptions.TooManyResultsException的异常排查过程

本文主要是介绍org.apache.ibatis.exceptions.TooManyResultsException的异常排查过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在查阅测试环境业务日志中的ERROR级别的日志时,发现了有一个Mybatis相关的异常错误:

2019-08-13 13:41:01,294 DEBUG [org.mybatis.spring.SqlSessionUtils] - <SqlSession
[org.apache.ibatis.session.defaults.DefaultSqlSession@6222f27] was not register
ed for synchronization because synchronization is not active>
2019-08-13 13:41:01,296 DEBUG [org.springframework.jdbc.datasource.DataSourceUti
ls] -
2019-08-13 13:41:01,297 DEBUG [org.mybatis.spring.transaction.SpringManagedTrans
action] - <JDBC Connection [1168197046, URL=jdbc:mysql://192.168.2.74:3306/mes?u
seUnicode=true&amp&characterEncoding=UTF-8&amp&allowMultiQueries=true, UserName=
root@192.168.2.80, MySQL-AB JDBC Driver] will not be managed by Spring>
2019-08-13 13:41:01,299 DEBUG [com.xinhai.mestimingtask.mysql.LogTaskMapper.addL
ogTaskInfo] - <> Preparing: INSERT INTO log_task (menuID,logdate,logValue,use
rID,logModule,addNums,updateNums,delteNums,exceptionInfo,addIds,updateIds,delete
Ids) VALUES (?,?,?,?,?,?,?,?, ?,?,?,?) >
2019-08-13 13:41:01,302 DEBUG [com.xinhai.mestimingtask.mysql.LogTaskMapper.addL
ogTaskInfo] - <
> Parameters: null, 2019-08-13 13:41:01.288(Timestamp), 失败(St
ring), 戴森优能(北京)(String), PLM到MES子件(String), 0(Integer), 0(Integer), 0(I
nteger), 【nested exception is org.apache.ibatis.exceptions.TooManyResultsExcept
ion: Expected one result (or null) to be returned by selectOne(), but found: 2】
(String), 暂无(String), 暂无(String), 暂无(String)>
2019-08-13 13:41:01,339 DEBUG [com.xinhai.mestimingtask.mysql.LogTaskMapper.addL
ogTaskInfo] - <<== Updates: 1>
2019-08-13 13:41:01,340 DEBUG [org.mybatis.spring.SqlSessionUtils] - <Closing no
n transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession
@6222f27]>
2019-08-13 13:41:01,342 DEBUG [org.springframework.jdbc.datasource.DataSourceUti
ls] -

问题产生原因:
查询条件为Null则或数据发生改变缺少限制条件
检查数据库查询那里的代码后发现并无异样,但是这个堆栈信息又将错误非常明晰地指出,一定是Mybatis的SelectOne查询sql,查出了多条记录,原因:设计数据库表之前的理想状态是唯一一条记录,有些条件没有生效,执行sql时将某个查询条件去掉后发现查询出来的的确是2条记录,因为缺少了显示条件,而导致查询出多条数据。
在这里插入图片描述
注意:
sql语句最好先在数据库中进行测试,查看数据条数是否唯一;因为团队开发,会存在一定的测试数据影响测试结果。

这篇关于org.apache.ibatis.exceptions.TooManyResultsException的异常排查过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1117949

相关文章

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

Java报NoClassDefFoundError异常的原因及解决

《Java报NoClassDefFoundError异常的原因及解决》在Java开发过程中,java.lang.NoClassDefFoundError是一个令人头疼的运行时错误,本文将深入探讨这一问... 目录一、问题分析二、报错原因三、解决思路四、常见场景及原因五、深入解决思路六、预http://www

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

一文带你深入了解Python中的GeneratorExit异常处理

《一文带你深入了解Python中的GeneratorExit异常处理》GeneratorExit是Python内置的异常,当生成器或协程被强制关闭时,Python解释器会向其发送这个异常,下面我们来看... 目录GeneratorExit:协程世界的死亡通知书什么是GeneratorExit实际中的问题案例