【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的区别,记录下来,方便以后查阅。

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

posted @ 2021-10-20 16:26  layman~  阅读(1527)  评论(0编辑  收藏  举报