我希望在ItemWriter步骤中发生异常后保留一些数据。但是,如果我不是不正确的话,在这种情况下会发生回滚,所以这种持久的逻辑不会起作用。有没有办法实现这个目标?
现在,我正在实现itemWriteListener,所有持久化逻辑都写在了onWriteError方法中。该逻辑仅涉及将某些实体的状态更改为错误。
答案 0 :(得分:0)
您希望使用不参与交易的单独连接。例如,将DataSource
注入您的侦听器并使用独立连接构建您自己的JdbcTemplate
。通过这样做,不应回滚写入。
答案 1 :(得分:0)
如果您用
标记onWriteError
方法
@Transactional(propagation = Propagation.REQUIRES_NEW)
...也可以吗?