Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.eport.market.dao.RaSysHBMapper">
<resultMap id="BaseResultMap" type="com.eport.market.dao.RaSysHB">
<id column="ID" jdbcType="VARCHAR" property="id" />
<result column="SYS" jdbcType="VARCHAR" property="sys" />
<result column="RA" jdbcType="VARCHAR" property="ra" />
<result column="OFF" jdbcType="VARCHAR" property="off" />
<result column="HRA" jdbcType="VARCHAR" property="hra" />
<result column="NAME" jdbcType="VARCHAR" property="name" />
<result column="REMARK1" jdbcType="VARCHAR" property="remark1" />
<result column="REMARK2" jdbcType="VARCHAR" property="remark2" />
</resultMap>
<select id="getAll" resultMap="BaseResultMap" >
select * from RA_SYS_H_B
</select>
<insert id="insertB" parameterType="com.eport.market.dao.RaSysHB" >
insert into RA_SYS_H_B(ID , SYS , RA , OFF , HRA , NAME, REMARK1,REMARK2)
values(
#{id,jdbcType=VARCHAR} ,
#{sys,jdbcType=VARCHAR} ,
#{ra,jdbcType=VARCHAR} ,
#{off,jdbcType=VARCHAR} ,
#{hra,jdbcType=VARCHAR} ,
#{name,jdbcType=VARCHAR},
#{remark1,jdbcType=VARCHAR},
#{remark2,jdbcType=VARCHAR}
)
</insert>
<update id="updateByRa" parameterType="com.eport.market.dao.RaSysHB" >
update RA_SYS_H_B
<set>
<if test="sys != null">
SYS = #{sys,jdbcType=VARCHAR},
</if>
<if test="off != null">
OFF = #{off,jdbcType=VARCHAR},
</if>
<if test="hra != null">
HRA = #{hra,jdbcType=VARCHAR},
</if>
<if test="name != null">
NAME = #{hra,jdbcType=VARCHAR},
</if>
<if test="ra != null">
RA = #{hra,jdbcType=VARCHAR},
</if>
<if test="remark1 != null">
REMARK1 = #{remark1,jdbcType=VARCHAR},
</if>
<if test="remark2 != null">
REMARK2 = #{remark2,jdbcType=VARCHAR},
</if>
</set>
<where>
<if test="listRa != null">
RA IN
<foreach collection="listRa" item="item" index="index" open="(" close=")" separator=",">
<if test="(index % 999) == 998"> NULL ) OR RA IN (</if>
#{item}
</foreach>
</if>
<if test="listSys != null">
SYS IN
<foreach collection="listSys" item="item" index="index" open="(" close=")" separator=",">
<if test="(index % 999) == 998"> NULL ) OR SYS IN (</if>
#{item}
</foreach>
</if>
</where>
</update>
<delete id="deleteByRa" parameterType="com.eport.market.dao.RaSysHB" >
delete RA_SYS_H_B
where RA IN
<foreach collection="listRa" item="item" index="index" open="(" close=")" separator=",">
<if test="(index % 999) == 998"> NULL ) OR RA IN (</if>
#{item}
</foreach>
</delete>
</mapper>
Caused by: org.springframework.core.NestedIOException: Failed to parse config resource: class path resource [mybatis-config.xml]; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.eport.market.dao.RaSysHBMapper.BaseResultMap at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:434) at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:340) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1573) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1511) ... 74 more Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.eport.market.dao.RaSysHBMapper.BaseResultMap at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:109) at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:92) at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:428) ... 77 more Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.eport.market.dao.RaSysHBMapper.BaseResultMap at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:120) at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:92) at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:322) at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:107) ... 79 more Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.eport.market.dao.RaSysHBMapper.BaseResultMap at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:782) at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:754) at org.apache.ibatis.session.Configuration.addResultMap(Configuration.java:536) at org.apache.ibatis.builder.MapperBuilderAssistant.addResultMap(MapperBuilderAssistant.java:207) at org.apache.ibatis.builder.ResultMapResolver.resolve(ResultMapResolver.java:47) at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:284) at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:251) at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElements(XMLMapperBuilder.java:243) at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:116) ... 82 more
上面报错的意思是:mybatis的xml中类映射报错重名,是说在你的mapper.xml文件中出现了相同的命名id,mybatis映射文件的时候是根据namespace+id。。。。
解决办法 :
如果对应的javabean类参数和BaseResultMap中一致的话并且xml中没有任何错误语法或多写了几个符号,直接改一下映射类的名称即可

上面不能真正解决,最终查到是因为xml引用的映射java接口, 在别的xml被引用。换个java映射接口,ok了


浙公网安备 33010602011771号