在我的用例中,我的itemWriter将向文件系统写入一个XML,然后我想将表示插入到一个表中。
public CompositeItemWriter<T> compositeItemWriter(){
CompositeItemWriter writer = new CompositeItemWriter();
writer.setDelegates(Arrays.asList(fileWriter(), dbWriter()));
return writer;
}
如果流中的对象没有正确地保存到文件中,则可以使用跳过策略跳过它,并且我可能会以日志的形式将失败的对象保存在某个地方。
但是,如果发生这种情况,dbWriter必须不将此实体写入数据库。
那么,在第一个条目写入器失败的情况下,我们如何使用复合写入器跳过第二个条目写入器呢?
似乎我想要的行为是默认的,基于我在以下线程上读到的:
Spring-Batch
我假设itemwriter默认情况下是并行运行的。我不知道他们为什么不这样做,但这对我的用例来说是完美的。