gpt4 book ai didi

spring-batch - 在写入数据库之前使用 spring 批处理处理一批记录

转载 作者:行者123 更新时间:2023-12-04 04:54:14 28 4
gpt4 key购买 nike

在 spring 批处理代码中,我正在读取 100 条记录的块。对于块中的每条记录,我正在检查该记录是否存在于数据库中。如果记录存在于数据库中,我不会插入它。
第一次,如果我在 100 的块中有重复的记录,spring 批处理器无法识别该记录是重复的,因为 DB 中没有数据,处理器会先选择所有 100,然后执行插入。

有没有一种方法可以先在 100 个块中执行检查,然后检查数据库,然后在这两个之后插入数据库?

最佳答案

您可以实现自己的自定义 ItemProcessor检查重复项并删除它们。

这是一个例子:

public class DropDuplicateItemProcessor<T> implements ItemProcessor<T, T> {

// Will be used to save previous items;
private List<T> previousItems = new ArrayList<T>();

@Override
public T process(T item) throws Exception {

// Check for duplicates with your own logic (method equals)
if (previousItems.contains(item))
return null; // Drop duplicate

// Save item to check for duplicates later
previousItems.add(item);

// Continue with non-duplicate item
return item;
}

}

关于spring-batch - 在写入数据库之前使用 spring 批处理处理一批记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33369676/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com