天天看點

resultType還是resultMap傻傻分不清楚

運作MyBatis項目報錯:

Caused by: org.apache.ibatis.builder.IncompleteElementException: Could not find result map com.xxx.XxMapper.map

    at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:346)

    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)

    ... 106 common frames omitted

Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.xxx.XxMapper.map

    at 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)

    ... 132 common frames omitted

在類XxMapper對應的xml配置檔案中,把resultType="map" 誤寫成了resultMap="map".

看了xml配置檔案,比對以前寫的和新添加的配置,沒有發現不一樣的地方。一字之差,對于經常對着螢幕老眼昏花的我們的确不易察覺。最後注意到錯誤提示:

Result Maps collection does not contain value for com.xxx.XxMapper.map

意思是在找一個名詞為map的結果映射配置,但是我們在對應xml檔案中并沒有配置名字為map的結果映射。在我們的配置中map不應該是結果映射名稱,應該是結果類型resultType.

把resultMap="map"修改為resultType="map"問題解決.

你是不是也遇到過這種由于錯誤輸入或者自動補全時一不小心選擇了個錯誤項導緻的奇怪錯誤?