如何使用Spring-Batch读取由id-column分块的csv行?
我正在使用Spring-Batch
读取csv文件,格式化内容并将其写入数据库,如:
StepBuilder builder = stepBuilderFactory.get("step") .chunk(100) .reader(flatFileItemReader) .processor(processor) .writer(jpaItemWriter);
csv包含ID列。 如何修改reader
以基于该ID的块? Examle:
#id, #value 1, first 1000, second 1001, second 1005, second
在这种情况下,块只会读取第一行,然后提交,然后继续。
是否可以通过文件中的值应用分块?
我使用自定义CompletionPolicy和PeekableItemReader做了同样的事情 。
代码背后的想法是查看下一个项目,从下一个元素读取和检查值更改。
当值发生更改时,从CompletionPolicy.isComplete()
返回true
。
重要提示:此政策必须注册为步骤监听器!
public class BreakKeyCompletionPolicy extends CompletionPolicySupport{ private BreakKeyCompletionContext cc; private PeekableItemReader