解决java / spring中的postgres超出范围错误的最佳解决方案是什么?

时间:2018-10-15 02:56:42

标签: spring postgresql hibernate spring-boot

我有一个存储库,它通过idList / nameList获得帐户,通过childId获得子帐户,诸如此类。

请求参数/返回结果列表通常大于32768

我有一个快速解决方案,它是在查询之前将arraylist转换为2d arraylist。

Collection<List<Long>> childrenId2dList = PartitionArray.partitionBasedOnSize(childrenIdsList, 30000);
            if (childrenId2dList != null && childrenId2dList.size() > 0) {
                for (List<Long> list : childrenId2dList) {
                    childrenAccountsList.addAll(accountRepository.getAccounts(list));
            }

public static <T> Collection<List<T>> partitionBasedOnSize(List<T> inputList, int size) {
        AtomicInteger counter = new AtomicInteger(0);
        return inputList.stream().collect(Collectors.groupingBy(s -> counter.getAndIncrement() / size)).values();
}

我认为这是一个愚蠢且重复的代码。

请问有没有比当前解决方案更好的解决方案?

0 个答案:

没有答案