<select id="selectVoByEtpsId" parameterType="java.lang.String"
resultMap="BaseResultMap" >
SELECT P.ETPS_APTT_PUTREC_ID, P.ETPS_ID, P.PARA_CD,P.PARA_VAL,
C.PARA_NAME,C.PARA_TYPE,C.PARA_SEQNO,P.CREATE_USER, P.INDB_TIME, P.UPDATE_USER,P.UPDATE_TIME
FROM USER_ETPS_APTT_PUTREC P
RIGHT JOIN USER_ETPS_APTT_CONFIG C
ON ETPS_ID=#{etpsId,JDBCTYPE=VARCHAR}
AND P.PARA_CD=C.PARA_CD
</select>
但我得到这样的错误
org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.dao.IUserEtpsApttPutrecDao.BaseResultMap
at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:120)
当我将sql更改为此
时<select id="selectVoByEtpsId" parameterType="java.lang.String"
resultMap="BaseResultMap" >
SELECT P.ETPS_APTT_PUTREC_ID, P.ETPS_ID, P.PARA_CD,P.PARA_VAL,
C.PARA_NAME,C.PARA_TYPE,C.PARA_SEQNO,P.CREATE_USER, P.INDB_TIME, P.UPDATE_USER,P.UPDATE_TIME
FROM USER_ETPS_APTT_PUTREC P
RIGHT JOIN USER_ETPS_APTT_CONFIG C
ON ETPS_ID=#{etpsId}
AND P.PARA_CD=C.PARA_CD
</select>
它有效。
谁能告诉我为什么?感谢。
答案 0 :(得分:0)
错误消息指出存在重复的结果映射定义,其标识为BaseResultMap
。
此外,必须遵守属性名称的情况。如果保留大写,请写ETPS_ID=#{etpsId,jdbcType=VARCHAR}
或期望解析SQL Mapper配置时出错。