当前使用版本(必填,否则不予处理)
最新版本
该问题是如何引起的?(确定最新版也有问题再提!!!)
跟了下代码 在InsertBatchSomeColumn拦截中,调用tableInfo.getKeyInsertSqlColumn(false)生成主键 sql 脚本片段这里导致的。
在这次代码提交中将生成主键sql脚本片段的时候,会生成出错误的sql脚本,判断了一遍主键是否null,但是在批量插入的时候是没有id的,只有在for循环中才能判断是否有id。
如下:
INSERT INTO company_tag (<if test="id != null">id,</if>company_id,tag) VALUES
<foreach collection="list" item="et" separator=",">
(<if test="id != null">#{et.id},</if>#{et.companyId},#{et.tag})
所以调用批量插入这个方法就会报错。
重现步骤(如果有就写完整)
执行测试用例com.baomidou.mybatisplus.test.mysql.MysqlTestDataMapperTest#a02_insertBatch就能出现
报错信息
Comment From: qmdx
什么数据库 sqlServer 是不支持的,反馈后打开
Comment From: Inighty
什么数据库 sqlServer 是不支持的,反馈后打开
我出现这个问题是mysql. 而且这个是原先添加insertbatchSomecolumn时候就有的test方法,我什么都没改,执行报错。
Comment From: qmdx
什么数据库 sqlServer 是不支持的,反馈后打开
我出现这个问题是mysql. 而且这个是原先添加insertbatchSomecolumn时候就有的test方法,我什么都没改,执行报错。
https://gitee.com/baomidou/mybatis-plus/commit/f0d0f12d556e213eb9eb255d1a3e8403d373a84c
Comment From: antdong
是怎么解决的?不用批量插入了?