在寫(xiě)批量插入時(shí)遇到了一個(gè)MyBatisSystemException逻翁,ExecutorException: Error getting generated key or setting result to parameter object. Cause: org.apache.ibatis.binding.BindingException: Parameter 'serialNumber' not found. Available parameters are [list] 這句話(huà)的意思是京办,在獲取生成的key或把結(jié)果賦值到參數(shù)對(duì)象時(shí)出現(xiàn)了參數(shù)異常斯辰。
在我的問(wèn)題場(chǎng)景中,原因是無(wú)法把結(jié)果賦值到參數(shù)對(duì)象帖旨。下面具體來(lái)看問(wèn)題的來(lái)龍去脈箕昭。
我要向一張表批量插入數(shù)據(jù),在xml文件中寫(xiě)的插入語(yǔ)句如下:
表中主鍵SERIAL_NUMBER設(shè)為自增解阅。
以上寫(xiě)法拋異常落竹。解決方法是修改xml如下:
將useGeneratedKeys設(shè)為false
<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="false" keyProperty="serialNumber">
或去掉useGeneratedKeys和keyProperty
<insert id="batchInsert" parameterType="java.util.List">
不過(guò)以上做法可能誤導(dǎo)你,因?yàn)樵瓉?lái)圖片中的寫(xiě)法可以是正確的货抄,低版本如上寫(xiě)法會(huì)拋異常述召,高版本不會(huì)拋異常朱转。罪魁禍?zhǔn)资桥渲玫腗ybatis的版本。
如果你遇到跟我一樣的問(wèn)題桨武,不妨用這幾種方法解決異常肋拔。