Spring Batch Failure Listener Rollback

时间:2015-03-08 20:19:37

标签: java spring spring-batch rollback

我正在扩展Spring Batch' ItemListenerSupport并覆盖onProcessError()以处理错误状态。我的问题是,我希望能够作为我的处理的一部分写入数据库,但它似乎被包含在批处理的事务中并被回滚。有没有办法让它在之前进行回滚并允许onProcessError()更新数据库?或者还有其他方法我应该处理这个吗?

1 个答案:

答案 0 :(得分:0)

在文档中证明了它的权利。需要添加我自己的交易。

  

请记住,如果您的侦听器在onError()方法中执行任何操作,它将位于将要回滚的事务中。如果需要在onError()方法中使用事务性资源(如数据库),请考虑向该方法添加声明性事务(有关详细信息,请参阅Spring Core Reference Guide),并为其传播属性赋值REQUIRES_NEW。