Result Maps collection already contains value for xxxMapper.BaseResultMap错误解决办法
将相本无种,男儿当自强。这篇文章主要讲述Result Maps collection already contains value for xxxMapper.BaseResultMap错误解决办法相关的知识,希望能为你提供帮助。
原因分析:
这些代码因为是工具自动生成的,所以也没仔细检查.一个小小的错误,导致的。
解决办法:
1、由于使用ibatis的TempTestTableMapper.xml实现接口TempTestTableMapper.java中的方法的时候的id有重复的值,比如
<
select id="queryTempTestTableMap"
resultMap="TempTestTableResult">
中的TempTestTableResult在一个xml文件中有两个这样的id,修改过来即可
【Result Maps collection already contains value for xxxMapper.BaseResultMap错误解决办法】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的配置和我真实项目的路径不一致造成的.
推荐阅读
- 玩转开源使用 PhoenixSuit 线刷 Android 镜像
- Android模拟器Genymotion使用
- 慎用uniapp开发商业级应用
- application.properties 文件和 application.yml 文件的区别
- Android进阶你必须要了解的知识(ThreadLocal)
- APP耗电量测试
- Xcode - Xcode10上传应用到AppStore
- 关于最新create-react-app使用react-app-rewired2.x添加webpack配置
- call apply bind的区别