堆栈深度超过限制

报错:Cause: com.kingbase8.util.KSQLException: 错误: 堆栈深度超过限制 Hint: 在确定了平台的堆栈深度限制是足够大后,增加配置参数 "max_stack_depth"的值(当前值为2048kB).; 错误: 堆栈深度超过限制 Hint: 在确定了平台的堆栈深度限制是足够大后,增加配置参数 "max_stack_depth"的值(当前值为2048kB).; nested exception is com.kingbase8.util.KSQLException: 错误: 堆栈深度超过限制 Hint: 在确定了平台的堆栈深度限制是足够大后,增加配置参数 "max_stack_depth"的值(当前值为2048kB).]

经过以下改进仍没能解决:

java 复制代码
        List<String> sampleInfoIds = sampleInfoList.parallelStream()
                .map(BaseEntity::getId).collect(Collectors.toList());//sampleInfoIds过大
        List<String> subList1 = sampleInfoIds.subList(0, sampleInfoIds.size() / 2);
        List<String> subList2 = sampleInfoIds.subList(sampleInfoIds.size() / 2, sampleInfoIds.size()-1);
    
        List<SampleInfoDTO> sampleInfoDTOList = sampleInfoMapper.getSampleInfoDTOByIds(subList1);
        List<SampleInfoDTO> sampleInfoDTOList1 =sampleInfoMapper.getSampleInfoDTOByIds(subList2);
        sampleInfoDTOList.addAll(sampleInfoDTOList1);
java 复制代码
  List<String> sampleInfoIds = sampleInfoList.parallelStream()
                .map(BaseEntity::getId).collect(Collectors.toList());
        int batch=7000;
        int c=(int) Math.ceil((sampleInfoIds.size()*1.0)/batch);
        List<SampleInfoDTO> sampleInfoDTOList=new ArrayList<>();
        List<CompletableFuture> completableFutures=new ArrayList<>();
        for (int i=0;i<c;i++){
            int fromIndex=i*batch;
            int endIndex=(i+1)*batch-1;
            List<String> ids=sampleInfoIds.subList(fromIndex,Math.min(endIndex, sampleInfoIds.size()-1));
            CompletableFuture<List<SampleInfoDTO>> future = CompletableFuture.supplyAsync(() -> {
                return sampleInfoMapper.getSampleInfoDTOByIds(ids);
            }, executor);
            completableFutures.add(future);
        }
        CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0])).join();
        for (CompletableFuture future : completableFutures) {
            try {
                sampleInfoDTOList.addAll((List<SampleInfoDTO>)  future.get());
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            } catch (ExecutionException e) {
                throw new RuntimeException(e);
            }
        }
相关推荐
计算机毕设vx_bysj68699 小时前
【免费领源码】77196基于java的手机银行app管理系统的设计与实现 计算机毕业设计项目推荐上万套实战教程JAVA,node.js,C++、python、大屏数据可视化
java·mysql·智能手机·课程设计
吴声子夜歌9 小时前
ES6——正则的扩展详解
前端·mysql·es6
xixingzhe29 小时前
Mysql统计空间增量
数据库·mysql
程序员萌萌9 小时前
Java之mysql实战讲解(三):聚簇索引与非聚簇索引
java·mysql·聚簇索引
cozil10 小时前
记录mysql创建数据库未指定字符集引发的问题及解决方法
数据库·mysql
AC赳赳老秦10 小时前
OpenClaw数据库高效操作指南:MySQL/PostgreSQL批量处理与数据迁移实战
大数据·数据库·mysql·elasticsearch·postgresql·deepseek·openclaw
ego.iblacat11 小时前
Python 连接 MySQL 数据库
数据库·python·mysql
阿丰资源13 小时前
SpringBoot+MySQL+MyBatis-Plus+Vue前后端分离仓库管理系统 (附资料)
spring boot·mysql·mybatis
阿华田51213 小时前
MySQL性能优化大全
数据库·mysql·性能优化
被摘下的星星13 小时前
MySQL 别名使用规则详解
数据库·mysql