错误
java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.lang.Stringat org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:888)at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:640)at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:344)at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:290)at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:109)at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:788)at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:758)at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:753)at org.apache.ibatis.binding.MapperMethod$SqlCommand.resolveMappedStatement(MapperMethod.java:249)at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:219)at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:49)at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:65)at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58)at com.sun.proxy.$Proxy120.selectByPrimaryKey(Unknown Source)
问题分析
1,该问题一定是mybatis的xml配置中出错了。至于是哪里,嗯…,mybatis并不能精确定位。
2,我遇到的情况是“这个Mapper和那个Mapper”都有这个问题。
3,因 resultMap=“java.lang.String” 引起 Result Maps collection does not contain value for java.lang.String
解决办法
1,检查所有xml配置文件中的 "resultMap"是否配置正确。
2,较为快速的办法,检查近期xml配置文件的修改部分。(无法精确定位问题。不要以为某个Mapper调用出错,错误就在该Mapper的xml配置文件中。)
3,具体到本次问题:resultMap=“java.lang.String”改为resultType=“java.lang.String”。
类似问题
1,Parameter Maps collection does not contain value for 。
检查所有xml配置文件中的 "parameterMap"是否配置正确。
参考
/mybatis/mybatis-3/issues/684
/zengdeqing/article/details/50978682