今天在項目里增加了一個新功能,心里美滋滋,結果一啟動,殘酷的現實給了我當頭一棒。

我尼瑪,怎么報錯了!
它提示的這個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的區別,記錄下來,方便以后查閱。
另外我還想感慨一句: 我好菜啊。
