这个问题我已经遇过好几次了。总是不记得,每次都要折腾搜索一轮,有必要记录一下。
一、现象描述
我在spring boot项目中,使用mybatis进行批量插入,结果有错误提示。不过很奇怪,好像并不影响实际执行。数据也插到数据库里面去了。但这种提示一大堆,满屏都是,看着心好烦。提示如下:
二、解决问题
后来根据残存的记忆片段,找到一些答案,又改了一轮。记录如下:
1、修改dao或mapper.java
2、修改mapper.xml
将里面的collection="entities"
改成 collection="list"
原代码:
新代码:
三、小结
为什么要这样改?不知道。原先的代码看,好像找不出什么毛病。因为在dao里,已经通过@Param(“entities”)指明了参数的名称,按道理mybatis应该可以识别,但偏偏不。为什么改成list又可以?难道只是因为该参数的数据类型是List<>
?
搞不懂。也许是个bug。更可能是我的mybatis版本低了。
参考资料
MyBatis insert后返回自增主键,报错org.apache.ibatis.binding.BindingException: Parameter ‘id’ not found
mybatis批量插入,返回主键ID不成功,巨坑