早上起来启动项目报错:
Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for xxx.xxx.xxxx...
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for xxx.xxx.x....
大致意思就是 Statement集合中已经包含了mapper某个方法了,或者updateXXX 或者selectXXX,
我一看这简单啊,就是mapper.XML中方法重复的意思吧,找到重复的注释或者改名字就好了,
然后看了半天发现指明updateXXX 的方法并没有重复,各种百度,各种找,问。
所有的都指向方法即id有重复,我看这个方法并没有重复,脑袋炸了。
最后静下心仔仔细细看了一遍,发现并不是updateXXX重复,而是下边的一个queryXXX重复了,
最后总结一下网上的答案和自己的经历:
1.mapper报这个错误的原因是 mapper.xml中有id重复,特别重要的是它指明的不是那个具体的方法,而是其他的方法。以为报错就是值得第一个方法一般。
2.parameterMap改成parameterType
3.parameterType参数有问题