mybatis异常:Could not find result map Java.util.Map 问题分析及解决
报这个错误呢,很难受的就是你定位不到具体的地方,找不到位置修改,你只知道有错误,但是你不确定具体是哪里 。
我个人建议是全局搜索。
错误写法
<select id="queryXXXCount" resultMap="java.util.Map" >
mybatis报出的异常日志:
org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.util.Map
at org.apache.ibatis.builder.MapperBuilderAssistant.setStatementResultMap(MapperBuilderAssistant.java:354) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:292) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:113) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:579) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:505) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:500) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.binding.MapperMethod.setupCommandType(MapperMethod.java:240) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:71) ~[mybatis-3.1.1.jar:3.1.1]
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:39) ~[mybatis-3.1.1.jar:3.1.1]
。。。
正确写法:
<select id="queryXXXCount" resultType="java.util.Map">
注意:
mybatis报出的异常日志栈信息定位不是那么准(找错误发生的地方不能直接根据异常栈信息直接定位到问题方法)
此次根据这次异常栈信息找到的就是正常的方法,但是触发了有问题的那个mybatis
在问题调试、查找过程中:根据svn提交信息将新提交的代码进行核对、注释掉,并进行实际调试才能准确定位此类问题。
看了半个小时 啥错也没有啊 但是就是报这个错, mybatis xml文件中调用的方法返回的是实体对象,跟map没一毛钱关系, 百思不得其解!网上一查全是把resultMap换成resultType,全局搜了一下 resultMap="java.util.HashMap" 搜到1条 ,是其他文件的 ,改掉之后 ,启动ok,看来mybatis dao对应的xml会相互影响