工作的项目,Spring Boot整合Mybatis后启动报错Could not find result map java.lang.Integer。
直接拉到最后看到错误信息:
Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.lang.Integer at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:875) at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:627) at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:344) ... 51 more
遇到这种问题,一般都是因为在xml中基本类型返回属性的属性名写成了resultMap。
由于Mybatis的报错的定位文件有时候不准,所以不要只看错误信息中提到的文件关联的文件,所以ctrl+h 全工程内检索
resultMap="java.lang.Integer"(不同的人编码风格不同,有的可能会有空格,自行调整)。最后在另一个不相干的XXXmapper.xml文件中找到了这行
resultMap="java.lang.Integer"
然后改为
resultType="java.lang.Integer"
问题解决。
注意:MyBatis的报错有时候不是很准,所以不要只看不要只看错误信息中提到的文件关联的文件。有时候可能是另一个xml导致的错误。