关于Result Maps collection already contains value for...报错

今天遇到一个报错Result Maps collection already contains value for...
报错信息如下:
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.java.zxf.dao.CountLoginTriedTimesDao.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.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:466)
	... 65 more
Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.java.zxf.dao.CountLoginTriedTimesDao.BaseResultMap
	at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:802)
	at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:774)
	at org.apache.ibatis.session.Configuration.addResultMap(Configuration.java:556)
	at org.apache.ibatis.builder.MapperBuilderAssistant.addResultMap(MapperBuilderAssistant.java:217)
	at org.apache.ibatis.builder.ResultMapResolver.resolve(ResultMapResolver.java:47)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:285)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:252)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElements(XMLMapperBuilder.java:244)
	at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:116)
	... 67 more

大意是说在我的CountLoginTriedTimesDao.xml中已经存在结果集了
我就去xml中看了一下,果然,BaseResultMap有两个;其实不单单是BaseResultMap有两个,全部的增删改查方法都有双份的,删掉重复的就好了。

More:
那么,为什么会出现这种情况呢?
我是用mybatis逆向工程生成的相关映射文件,第一次生成的时候也没发现有重复的内容啊?

仔细思考了一下,是因为我第一次生成后,修改了数据库的表结构,后来又重新生成了一次;
第二次生成的时候,没有将第一次生成的类和xml文件删除,而是直接运行了,也成功了,提示是这些文件都被override了,我以为是将原来的全部覆盖了,原来是在原来后面追加了新的;

解决办法:
1.比较快速和简单的办法,就是将你第一次生成的文件删除,再生成第二次的文件;
2.分析源码,修改源码或自己编写插件,可以参考这个文章: https://my.oschina.net/u/137785/blog/736372
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
根据引用,报错信息"BaseResultMap在UsertableMapper.xml文件里已经出现过了"表示在Result Maps集合中已经存在了名为"com.example.dao.BillMapper.BaseResultMap"的值。 根据引用,这种错误的原因可能有多个同名的XXXMapper.xml文件,存在多个重复定义的方法名,或者重复加载同一个XXXMapper.xml文件。解决这个问题的方法可以是先删除之前的文件,或者找出重复片段并删除掉。 因此,要解决这个问题,可以按照引用中的方法,先删除之前的文件或找出重复片段并删除,以确保Result Maps集合中不会出现重复的值。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [关于Result Maps collection already contains value for...的报错问题](https://blog.csdn.net/weixin_44217612/article/details/99876134)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Result Maps collection already contains value for xxxMapper.xxx](https://blog.csdn.net/liaoyoujinb/article/details/127571305)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值