Result Maps collection already contains value for xxxMapper.BaseResultMap错误解决办法

Posted WhatAreWords

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Result Maps collection already contains value for xxxMapper.BaseResultMap错误解决办法相关的知识,希望对你有一定的参考价值。

原因分析:

这些代码因为是工具自动生成的,所以也没仔细检查.一个小小的错误,导致的。

解决办法:

1、由于使用ibatis的TempTestTableMapper.xml实现接口TempTestTableMapper.java中的方法的时候的id有重复的值,比如
    <select id="queryTempTestTableMap"    resultMap="TempTestTableResult"> 中的TempTestTableResult在一个xml文件中有两个这样的id,修改过来即可

2、删除Mybatis.xml中的<mappers>标签所有内容。因为如果user-mapper.xml与namespace的接口在同一路径下,就不需要在mybaits.xml中再进行配置了。

3、insert 中的parameterType部分,之前我写的是类名,后来改为完整的包名+类名就好用了,不过,这个问题,其实在之前的iBatise2.x,是允许这样写的,有些不解了,不过看来以后需要注意了,尽量都用完整的包名+类名

4、sql语句返回时,使用<select id="xxx" resultType="example">与<resultMap id="example" type=“xxx”>相冲突导致的。将resulttype更改为resultmap即可解决该问题。

5、eclipse编译了一份在bin目录下,将bin目录或者WEB-INF下class目录清空即可

6、下载了个可以直接运行的eclipse 项目,再与之前的项目对比,好像也没什么不同。最后使绝招:代码对比工具,发现生成的PetMapper.xml多了几百行!原来是我在运行时没有把之前已经生成的PetMapper.xml删除掉,再次生成代码时,又附加了上去!所以在运行代码生成之前,要把以前已经生成的xml文件清掉,以防出错。
7、包路径配错了,前面说了代码是用工具自动生成的,所以生成resultType的配置和我真实项目的路径不一致造成的.

以上是关于Result Maps collection already contains value for xxxMapper.BaseResultMap错误解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Result Maps collection already contains value for

MyBatis出错Result Maps collection does not contain value for java.lang.Integer

错误日志Result Maps collection already contains value for XXXResultMap

Result Maps collection already contains value for BaseResultMap

异常 java.lang.IllegalArgumentException: Result Maps collection already contains value

Mybatis异常_02_Result Maps collection already contains value for