【java.lang.IllegalArgumentException】Result Maps collection does not contain value for java.lang.Long


今天在項目里增加了一個新功能,心里美滋滋,結果一啟動,殘酷的現實給了我當頭一棒。
在這里插入圖片描述
我尼瑪,怎么報錯了!

它提示的這個SysConfigServiceImpl,我根本就沒有碰過里面的代碼。

心中一萬頭草泥馬…

我抱着試試看的態度,問了問度娘,搜到了兩個解決方案

1.有可能是mapper文件中中resultType誤寫成resultMap導致的

2.調用方法時報這個錯誤,不一定是與該方法相關的錯誤,如果其他mapper文件中配置錯誤,也會導致該錯誤。因為在調用方法時,會檢測所有mapper中的返回值,這時候查看一下別的mapper中配置就好了。(坑了我好久)

於是,我就去找mapper文件,查看我添加的新代碼,結果還真發現了一個。

	<select id="selectDeptIdList" resultMap="java.lang.Long">
		select u.dept_id from sys_dept u where u.del_flag = '0'
	</select>

我當時驚了,我竟然真的把 resultType 寫成了 resultMap

該方法返回的是 dept_id 的List集合,當然不能轉化為 java.lang.Long

於是我把該方法,修改如下(把 resultMap改為 resultType

	<select id="selectDeptIdList" resultType="java.lang.Long">
		select u.dept_id from sys_dept u where u.del_flag = '0'
	</select>

這個報錯就解決了。

但是我發現mybatis中的很多知識點我都忘記,看來有沒有翻看筆記,好好查閱一番了

順便把resultMap和resultType的區別,記錄下來,方便以后查閱。

另外我還想感慨一句: 我好菜啊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM