Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains valu...

在使用mybatis的时候遇到这个问题

报错信息

Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.itheima.dao.IUserDao.findAll
    at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:872)
    at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:844)
    at org.apache.ibatis.session.Configuration.addMappedStatement(Configuration.java:668)
    at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:302)
    at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parseStatement(MapperAnnotationBuilder.java:351)
    at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parse(MapperAnnotationBuilder.java:134)
    at org.apache.ibatis.binding.MapperRegistry.addMapper(MapperRegistry.java:72)
    at org.apache.ibatis.session.Configuration.addMapper(Configuration.java:741)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.bindMapperForNamespace(XMLMapperBuilder.java:413)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:94)
    at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:373)
    at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:119)
    ... 4 more

在网上查询到出现问题的原因是

在xml中存在id冲突
在xml中配置了sql语句 同时又在java中以注解的形式查询了一次
究其根本是其存储是以kv形式存储的上述两种问题都会导致k相同

参考地址:https://www.jianshu.com/p/32d7c4101931

于是我用全局搜索了findAll这个id 果然这个id在xml和注解同时存在了,因为注解文件是上个项目copy过来了,所以没有注意到。

13543313-66296bf3984131ea.png
注解
13543313-e188bc76bc27b804.png
xml

版权声明:本文为weixin_41430914原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。