Caused by: java.lang.IllegalArgumentException: XML fragments parsed from previous mappers already contains value for com.alioth..... 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.builder.xml.XMLMapperBuilder.sqlElement(XMLMapperBuilder.java:335) at org.apache.ibatis.builder.xml.XMLMapperBuilder.sqlElement(XMLMapperBuilder.java:326) at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:117) ... 129 common frames omitted解决问题步骤
1、查看对应的Mapper文件中是否存在相同ID的SQL标签
2、查看同一包下,是否有多个xml配置了相同的namespace
在mybatis中,相同的namespace下不允许sql标签的ID重复,如果重复,就会报题目中的异常。通常情况下,由于代码搬运(复制粘贴)会造成同一个mapper文件内出现两个ID相同的sql标签,或者两个mapper文件的namespace同时指向了同一个java bean。
注:极特殊情况下,由于编译器的问题,比如eclipse/idea未正确编译代码也有可能出现此问题,使用build重新编译即可。如果使用maven管理项目,可以重新clean install 解决。



