错误复现 :
postman调接口的时候出现了这样的错误:
ex=nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 5
错误是:预期返回一个结果(或 null),但发现:5
发现这样的错误先检查sql,看sql的输出结果,sql如下:
<select id="fileInspectionList" resultType="map">
SELECT <include refid="aip_n_static_cols"/>
FROM sys_inspection_form WHERE
<if test=" type == 'admin'.toString() ">
dept_id = #{deptid}
</if>
<if test=" type != 'admin'.toString() ">
dept_id = #{deptid}
AND status='已发布'
or user_id = #{userid}
</if>
</select>
执行sql语句可以发现查询出来的对应数据有5条
报错原因:
报错的原因是因为我们的sql语句查询出多条返回结果,但是我们的代码中只需要一条返回结果,所以导致这个问题出现
解决方法
1.方法一:
在我们的sql语句中添加查询条件使得我们的返回数据为一条结果并返回
2.方法二:
返回值还是为一个对象时,将返回的数量做限制(limit)【慎用】
3.方法三:
将我们返回的数据结果用一个集合(List)来接收