springboot项目mybatis报异常,时好时坏。
异常信息为:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Sun Aug 13 09:52:01 CST 2017
There was an unexpected error (type=Internal Server Error, status=500).
nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 5
刷新页面 but found:数字会发生变化
错误提示:查询结果期望是一条记录,但是返回了多条。
网上搜索的解决方法:(1)检查Mybatis配置文件中返回的结果类型与Java中返回类型是否一致
(2)检查传递参数的个数
检查之后,参数 、返回值类型并没有错误 !!!!
而且,重要的是:我们的这个异常一会有一会没有。完全不知道是因为什么原因。
后来发现和同事在同一个项目的两个不同类中有两个名字相同的方法。。。
controller–>service—>mapper接口—>xml文件中 select 的id都是一样的。。一个返回值为String,另一个返回值为List。所以猜测时好时坏的异常是因为一会映射到返回值为String的方法,一会又映射到返回值为List的方法。
修改其中一个名字,让两个名字不再重复~~异常消失~
但是,疑惑的是虽然名字一样,但是都分别在不同的方法、mapper.xml中,为什么会出现映射异常???