我需要在表中插入一条记录,然后使批处理异常终止,而不会导致插入内容回滚。
我已经使用过,但不会终止该批次
答案 0 :(得分:1)
您可以使用容错步骤并使用Parameters设置不应引起回滚的异常。
然后,您可以使用侦听器(ItemProcessListener
或ItemWriteListener
,具体取决于引发异常的位置)来拦截异常,并使用FaultTolerantStepBuilder#noRollback终止步骤(及其周围的工作)。
答案 1 :(得分:0)
我用过这个:
<batch:step id="id">
<batch:tasklet>
<batch:chunk reader="reader" processor="processor" writer="writer" commit-interval="1">
</batch:chunk>
<batch:no-rollback-exception-classes>
<batch:include class="com.exception.myException"></batch:include>
</batch:no-rollback-exception-classes>
</batch:tasklet>
</batch:step>
它仅允许避免回滚,而不能终止批处理。我想在执行myException之后终止批处理。
myException在处理器中启动