系统报错如下
java.lang.reflect.InvocationTargetException:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
Error querying database. Cause: java.lang.UnsupportedOperationException
Cause: java.lang.UnsupportedOperationException
报错分析:
MyBatisSystemException,首先,是mybatis中出现了问题,因此,mapper层的接口和sql都需要检查。
其次:UnsupportedOperationException,不支持的操作异常。
综合就是:mapper中,使用了 mybatis不允许的方法。
系MyBatis的映射文件中,使用了不支持的方法。比如这次 使用 paramList 做 forEach查询时,
<choose>
<when test="paramList.size() == 1">
AND `param` = #{paramList.get(0)}
</when>
<otherwise>
AND `param` IN
<foreach collection="paramList" item="param" separator="," open="(" close=")">
#{param}
</foreach>
</otherwise>
</choose>
在判断 size=1 之后,在这里的 list.get() 方法是非法的 ,而应该是 :
#{paramList[0]}