在插入大批量数据时容易出现数据过多,insert语句报错
所以可以使用类似分页的方式,分批次插入
第一种解决方式
int total = list.size();
int size = 1000;
int num = total % size == 0 ? total / size : total / size + 1;
for (int i = 1; i <= num; i++) {
if (i == num) {
saleFlowService.insertBatch(list.subList((i - 1) * size, total));
} else {
saleFlowService.insertBatch(list.subList((i - 1) * size, i * size));
}
}
第二种解决方式
int index=list.size()/1000;
for(int i=0;i<index;i++){
saleFlowService.insertBatch(
list
.stream()
.skip(i*1000)
.limit(1000)
.collect(Collectors.toList()));
}