堆栈深度超过限制

报错: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);
            }
        }
相关推荐
炘爚12 分钟前
MySQL——事务和隔离级别
数据库·mysql
小挪号底迪滴29 分钟前
Redis 和 MySQL 数据不一致怎么办?缓存更新策略实战
redis·mysql·缓存
the sun3435 分钟前
数据库中间件 ShardingSphere的安装与连通性配置
mysql
翼龙云_cloud36 分钟前
阿里云国际代理商:如何使用RDS MySQL 构建网站数据库?
数据库·mysql·阿里云
程序猿乐锅40 分钟前
【 苍穹外卖day03 | 菜品管理 】
java·开发语言·数据库·mysql
云梦泽࿐้2 小时前
字符串操作全攻略:格式化、切片、正则
数据库·mysql
承渊政道2 小时前
【MySQL数据库学习】(MySQL表的内外连接)
数据库·学习·mysql·leetcode·bash·数据库开发·数据库系统
摇滚侠11 小时前
mariadb-libs 被 mysql-community-libs-5.7.28-1.el7.x86_64 取代
数据库·mysql·mariadb
DIY源码阁12 小时前
JavaSwing饮品管理系统 - MySQL版
java·数据库·mysql·eclipse
yoothey14 小时前
MySQL事务机制解析 - 面试高分知识点
数据库·mysql·面试