我在spring批处理中有自己的fieldsetmapper。我想跳过一些符合某些标准的行。如果我在mapFieldSet(FieldSet fieldSet)中返回null,则itemreader将停止。这意味着剩余的行不会被处理。
那么如何跳过mapFieldSet中的那一行?
答案 0 :(得分:3)
如果文本行内容正式正确,则由FieldSetMapper.mapFieldSet()
完成解析会返回有效对象;如'Filtering records'章节所述,返回的对象应在ItemProcessor
中“过滤掉”(符合您的商家标准)。
答案 1 :(得分:1)
您可以抛出异常并配置批量阅读器的skippable-exception-classes
。还记得配置skip-limit
:
<step id="step1">
<tasklet>
<chunk reader="flatFileItemReader" writer="itemWriter"
commit-interval="10" skip-limit="10">
<skippable-exception-classes>
<include class="org.springframework.batch.item.file.FlatFileParseException"/>
</skippable-exception-classes>
</chunk>
</tasklet>
</step>
详细信息:http://docs.spring.io/spring-batch/reference/html/configureStep.html