目录
问题复现
报错信息:
nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
报错信息的大致意思:过多的结果值异常:只希望得到一个结果,但发现了2个
看我们的sql怎么写的:
很明显我们要的是一条但是返回的结果却是多条所以导致这个问题的出现
报错原因
报错的原因是因为我们的sql语句查询出多条返回结果,但是我们的代码中只需要一条返回结果,所以导致这个问题出现
解决方法
1.方法一:
在我们的sql语句中添加查询条件使得我们的返回数据为一条范湖结果
2.方法二:
返回值还是为一个对象时,将返回的数量做限制
SELECT
*
FROM
sggp_gwss_document o
JOIN sggp_document_approve p ON o.id = p.document_id
WHERE
o.id = 1
LIMIT 1
误区: 使用"limit"关键字要判定我们limit后的判定条数是我们想要返回的数据吗,因为有时会发生我们读取数据异常,所以这个我们要谨慎使用
3.方法三:
将我们返回的数据结果用一个集合(List)来接收
解释:如果我们用集合来接收返回值,我们需要解析集合来找到我们需要的数据