Mybatis异常:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
这个错误是我在集成SpringBoot项目测试数据库时遇到的问题。这是Mybatis最常见的一个异常TooManyResultsException。
原因:看报错的信息,期待只返回一个结果,什么意思呢,就是代表数据库只有一行对应的信息,但是却查出了2个,数据库查询出的结果集有4列
例如:你写的某个接口根据某个条件查询某个用户,但是调用执行的时候却查询出了多个相同的结果
解决:
- 情况1:你的SQL返回了多个对象,但是在接收的时候却只有一个对象,可以把这个对象放在List里(例如把接口返回值改成List)
- 情况2:只返回一个对象,检查你的SQL或者数据是否zhengq
- 或者你也可以直接手动把你数据库的信息改成只有一条