Spring源码分析【8】-MyBatis注解方法不能重载

本文探讨了在Spring中使用MyBatis注解时遇到的方法重载问题。当尝试重载注解方法时,会导致错误,因为MyBatis的内部机制在`Configuration.addMappedStatement`步骤中使用了`StrictMap`,该映射器不允许相同的键。通过逐步调试,揭示了错误源于`StrictMap`的put方法,其在添加映射语句时进行了键的唯一性检查,导致第二次添加相同键时抛出异常。
摘要由CSDN通过智能技术生成

代码如下:


这是不可以的,会报错:

2016-08-18 11:36:00,267 [main] ERROR [org.mybatis.spring.mapper.MapperFactoryBean] - Error while adding the mapper 'interface com.unix21.mapper.UserMapper' to configuration.
  java.lang.IllegalArgumentException: Mapped Statements collection already contains value for com.unix21.mapper.UserMapper.findById
	at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:837)
	at org.apache.ibatis.session.Configuration$StrictMap.put(Configuration.java:809)
	at org.apache.ibatis.session.Configuration.addMappedStatement(Configuration.java:633)
	at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:302)
	at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parseStatement(MapperAnnotationBuilder.java:325)
	at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parse(MapperAnnotationBuilder.java:130)
	at org.apache.ibatis.binding.MapperRegistry.addMapper(MapperRegistry.java:72)
	at org.apache.ibatis.session.Configuration.addMapper(Configuration.java:706)
	at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:81)

class

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值