如何跳过当前字段集并继续弹出批处理中的下一个

时间:2014-03-14 00:39:52

标签: spring spring-batch

我在spring批处理中有自己的fieldsetmapper。我想跳过一些符合某些标准的行。如果我在mapFieldSet(FieldSet fieldSet)中返回null,则itemreader将停止。这意味着剩余的行不会被处理。

那么如何跳过mapFieldSet中的那一行?

2 个答案:

答案 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