溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis參數(shù)類型不匹配錯誤argument?type?mismatch的處理方案是什么

發(fā)布時間:2022-01-12 17:46:08 來源:億速云 閱讀:2982 作者:柒染 欄目:開發(fā)技術(shù)

這篇文章主要為大家分析了mybatis參數(shù)類型不匹配錯誤argument type mismatch的處理方案是什么的相關(guān)知識點,內(nèi)容詳細易懂,操作細節(jié)合理,具有一定參考價值。如果感興趣的話,不妨跟著跟隨小編一起來看看,下面跟著小編一起深入學習“mybatis參數(shù)類型不匹配錯誤argument type mismatch的處理方案是什么”的知識吧。

參數(shù)類型不匹配錯誤argument type mismatch

錯誤日志

java.lang.RuntimeException: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error selecting key or setting result to parameter object. Cause: org.apache.ibatis.reflection.ReflectionException: Could not set property ‘id’ of ‘class xxxxxxxx’ with value ‘37997’ Cause: java.lang.IllegalArgumentException: argument type mismatch
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error selecting key or setting result to parameter object. Cause: org.apache.ibatis.reflection.ReflectionException: Could not set property ‘id’ of ‘class com.fshows.lifecircle.marketcore.service.dal.lifecircle.dataobject.TpLifecircleQuotaDO’ with value ‘37997’ Cause: java.lang.IllegalArgumentException: argument type mismatch

錯誤描述

根據(jù)字面意思就是:參數(shù)類型不匹配

實際就是某個參數(shù)存儲的,與傳入的參數(shù)類型不一致

錯誤代碼

mybatis參數(shù)類型不匹配錯誤argument?type?mismatch的處理方案是什么

錯誤原因

在mybatis:gen生成代碼的時候,這個id參數(shù)生成類型resultType=“java.lang.Long”,但實際數(shù)據(jù)庫類型是int,應該對應resultType=“java.lang.Integer”

只要將Long改為Integer,與數(shù)據(jù)庫對應即可。

mybatis時argument type mismatch的坑

錯誤描述:參數(shù)類型不匹配

常見錯誤中 mybatis映射出現(xiàn)問題無非就

column名字錯誤、property字段名錯誤、resultMap id寫錯了 沒對上、映射實體類屬性類型和數(shù)據(jù)庫字段類型對不上,

這個一般都是比較容易想到和發(fā)現(xiàn)的。

但是某一天 映射實體類 因為某些地方要數(shù)據(jù)處理,你寫了一個有參構(gòu)造,而沒把無參構(gòu)造補上,這時mybatis在映射的時候 (映射首先要創(chuàng)建對象) 就會出現(xiàn)異常,而此時的參數(shù)類型不匹配 正是指的構(gòu)造參數(shù)類型不匹配 而非數(shù)據(jù)字段和屬性不匹配!

例如

new PeopleVO(People p) 和 new People() debug下可以看到會報錯參數(shù)People類型錯誤

所以在開發(fā)中 該遵循的規(guī)則 還是要遵循,相信不少人在初學java的時候 一定聽過 寫了有參構(gòu)造一定要手動把無參構(gòu)造寫上,當時我想的是 要是用上無參構(gòu)造new對象 編譯器也會提示,用的時候在new也不遲 況且還不一定用得上,

可是在mybatis映射的時候 想不到吧 人家反射創(chuàng)建對象了… 不由感慨 前人的總結(jié)都是踩了無數(shù)坑的基礎(chǔ)上建立起來的,那些表面看起來不會有問題的代碼 可能會以某種意想不到的形式出現(xiàn)bug

關(guān)于“mybatis參數(shù)類型不匹配錯誤argument type mismatch的處理方案是什么”就介紹到這了,更多相關(guān)內(nèi)容可以搜索億速云以前的文章,希望能夠幫助大家答疑解惑,請多多支持億速云網(wǎng)站!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI