Spring Boot启动 MyBatis报错 Could not find result map java.lang.Integer

时间:2021-10-10 19:36:37

工作的项目,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导致的错误。