我正在扩展Spring Batch' ItemListenerSupport
并覆盖onProcessError()
以处理错误状态。我的问题是,我希望能够作为我的处理的一部分写入数据库,但它似乎被包含在批处理的事务中并被回滚。有没有办法让它在之前进行回滚并允许onProcessError()
更新数据库?或者还有其他方法我应该处理这个吗?
答案 0 :(得分:0)
在文档中证明了它的权利。需要添加我自己的交易。
请记住,如果您的侦听器在onError()方法中执行任何操作,它将位于将要回滚的事务中。如果需要在onError()方法中使用事务性资源(如数据库),请考虑向该方法添加声明性事务(有关详细信息,请参阅Spring Core Reference Guide),并为其传播属性赋值REQUIRES_NEW。