dromara / hutool

🍬A set of tools that keep Java sweet.
https://hutool.cn
Other
29.24k stars 7.53k forks source link

使用hutool 批量插入数据的问题 #3777

Closed anwanju closed 3 weeks ago

anwanju commented 3 weeks ago

版本情况

JDK版本: openjdk_8_201 hutool版本: 5.5.6(最新的版本问题还在)

问题描述(包括截图)

我在批量导出导入数据的时候,会出现部分记录内容不完整,原因在于 hutool 再批量插入数据的时候,会根据第一条记录生成insert sql,如果第一条的记录sql 字段不完整 ,那么之后的数据对应的字段内容也无法进行插入。

  1. 复现代码 示例逻辑 : create table t( --创建表 a varchar(10), b varchar(10), c varchar(10) ) class T( --创建类 private String a; private String b; private String c; // 省略构造方法。。。 ) //示例代码 T t1 = new T("1",null,null); T t2 = new T("2","a","b"); T t3 = new T("3","a",null); -- 转成entity 的时候只保留字段a ,我原本获取数据是从其他平台通过接口获取,字段内容为空的时候,json 中是不包括改字段的 DbUtil.newSession(SpringUtil.getBean(DataSource.class)).insert(Arrays.asList(Entity.parse(t1),Entity.parse(t2),Entity.parse(t3)));-- t1是第一条记录 这样执行之后,t2 ,t3 记录只能插入字段a

hutool代码: image

预期: 所有的记录完整的字段都插入导表中去

looly commented 3 weeks ago

是滴。你要保证第一条数据是模板数据。

插入时,无法根据给定的大量数据找出最多数据的Entity,因此只能以第一条数据作为模板数据。

anwanju commented 3 weeks ago

已收到邮件,请等待回复,谢谢