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的配置和我真实项目的路径不一致造成的.