首先看看是不是 深度递归导致的栈溢出。
本问题是因为批量插入数据量过大。Oracle,mysql插入数据都是极限的。
最终,采取拆分List集合。分批插入
核心代码如下;
//misUPRlists 为全量集合
Integer size = misUPRlists.size();
if(null!=misUPRlists&&size>0){
int pointsDataLimit = 1500;//限制条数
//判断是否有必要分批
if(pointsDataLimit<size){
int part = size/pointsDataLimit;//分批数
for (int i = 0; i <= part; i++) {
int lines1=lines;
if(i==part){
pointsDataLimit=size%pointsDataLimit;
}
//1500条
List<MisUPR> listPage = misUPRlists.subList(0, pointsDataLimit);
lines = upRmapper.insertBatch(listPage);
lines=lines+lines1;
//剔除
misUPRlists.subList(0, pointsDataLimit).clear();
}
}else{
lines = upRmapper.insertBatch(misUPRlists);
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
此文只用于个人反思问题记录