java.lang.IllegalArgumentException: Mapped Statements collection already contains value for XXXX异常处理

java.lang.IllegalArgumentException: Mapped Statements collection already contains value for XXXX

字面意思是说Mapper中存在id重复的值(同一个Mapper.xml 文件中包含两个id 为xxx的方法)。

不过需要注意的是 ,出现这种错误时,可能实际重复的id并不是错误报出的那个。解决方法一般如下:

1.检查该Mapper文件中的所有方法,查看是否有id重复的方法;

2.检查方法中的parameterType和resultType,查看相应的参数类型是否有错误。

以上就是基本的解决思路,下面看看我遇到的错误案例:

首先观察发现Dao类有问题

java.lang.IllegalArgumentException: Mapped Statements collection already contains value for XXXX异常处理_第1张图片 

我们来看看Dao到底有什么问题

java.lang.IllegalArgumentException: Mapped Statements collection already contains value for XXXX异常处理_第2张图片

有朋友会说,这不就是个重载吗这有什么错,可是我这里用的是mybatis注解开发,这里的@Mapper中不支持重载(具体解释查资料),所以这个已经就生成错误了。

然后将方法名修改后就可以正产运行了java.lang.IllegalArgumentException: Mapped Statements collection already contains value for XXXX异常处理_第3张图片

因此我这里的错误就是一个:@Mapper中不支持重载

你可能感兴趣的:(mybatis)