我正在使用Postgres作为我的SQL。我的Springboot应用程序使用Spring Batch处理和插入数据。我正在审核我的代码流,比如说假设一个第三方API,如果它失败了,我会调用它来审核这个失败事件。这段代码在我的Spring Batch Writer中。我看到了我的AUDIT DTO类的日志,但是我在审核表中看不到数据。如果我把审计代码移到Spring Batch writer之外也是一样的--它工作了。应该做些什么才能让我的审计表插入代码在Spring Batch writer中工作呢?
1条答案
按热度按时间lokaqttq1#
需要确定更多细节,但我假设您的编写器写入第三方API,并且您将审计日志写入用于SpringBatch meta数据的同一个
DataSource
。SpringBatch在writer中对块的每一次写入都被 Package 在一个事务中,如果在writer中抛出异常,这样的事务将被回滚。
您需要在Spring Batch创建的事务之外写入审计日志,例如,通过使用Spring事务管理并启动一个传播级别为
REQUIRES_NEW
的新事务。