报错现场还原
当我刚刚修改完代码后,一运行程序,就开始报错。然后我检查了对应的mapper文件和接口文件都没有发现问题。但运行任何一个和mybatis相关的测试,发现全部都报告这个错误。真是让我头疼…
还原报错信息
detailMessage=Could not find result map java.lang.Integer, stackTrace=[Ljava.lang.StackTraceElement;@7cc0ee15}
org.apache.ibatis.builder.IncompleteElementException: Could not find result map java.lang.Integer
解决方案
第一步: 全局搜索 ctrl+shift+f 查找有没有mybatis文件里,把返回类型resultType 写成 resultMap 的情况?
第二步: 确定sql语句的返回值,如果是返回数字,那就用resultType,如果是返回的是对象或者对象列表,那就用 resultMap。如果用错了,你就会和我报同样的错误了~
原因解释
因为:resultType和resultMap是不一样的。
-
resultType就是JavaBean,mybatis里常见的用法是在返回一些数量信息的时候。 -
resultMap需要在自定义配置的,返回的是对象或者对象列表,那就用resultMap