当前使用版本(必填,否则不予处理)
3.3.1.tmp
该问题是如何引起的?(确定最新版也有问题再提!!!)
集成选装件InsertBatchSomeColumn做批量插入,实体类为null的字段,在生成批量插入SQL语句中会产生null值
重现步骤(如果有就写完整)
产生的sql语句如: insert into(id,name,age) values(1,null,2) 而不是insert into(id,age) values(1,2)
报错信息
Comment From: miemieYaho
肯定会有null
Comment From: heyaping388
有办法不插入null吗?不然表字段的默认值就无效了 都是插入了null
Comment From: miemieYaho
看里面属性进行字段筛选
Comment From: heyaping388
哪里的属性 需要改com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn.java吗
Comment From: heyaping388
是不是要模仿
生成if 脚本
Comment From: miemieYaho
InsertBatchSomeColumn.predicate
Comment From: heyaping388
我是这样写的
但是没有效果 求指点 万分感谢
Comment From: miemieYaho
那是筛选字段的函数 batch=
insert into table (column1,column2) values(list[0].value1,list[0].value2),(list[1].value1,list[1].value2)......
字段固定那值必须也固定,有几个字段就必须有几个值,否则会报错
Comment From: heyaping388
那是筛选字段的函数 batch=
sql insert into table (column1,column2) values(list[0].value1,list[0].value2),(list[1].value1,list[1].value2)......字段固定那值必须也固定,有几个字段就必须有几个值,否则会报错
意思是只能指定固定字段名作为筛选条件,而不能适应所有场景?
Comment From: xbox1994
@heyaping388 我暂时在entity里把字段的默认值直接加上了,可以解决
Comment From: heyaping388
@heyaping388 我暂时在entity里把字段的默认值直接加上了,可以解决
阿里巴巴java开发手册不推荐entity加默认值
Comment From: ldf-hub
所以有解决方案吗?
Comment From: wangjintaod
可以自己写一个方法,在拼sql的时候判断一下 null的时候 colum不拼,value也不拼,我目前是想要让updateTime赋值为now()的,所以我这么写了。同样的道理,拼出来的sql自己调整一下就可以了.