让我们有 2 个不同的ReactiveMongoRepository
mongo 存储库:
@Autowired
private CurrencyRepository currencyRepository;
@Autowired
private CurrencyArchiveRepository currencyArchiveRepository;
还有一个 @Transactional 方法,它调用两个存储库,以反应方式链接它们的调用:
@Override
@Transactional
public Mono<Void> delete(final String currencyCode) {
final CurrencyArchive currencyArchive = buildCurrencyArchive();
return this.currencyArchiveRepository.save(currencyArchive)
.flatMap(c -> this.currencyRepository.delete(c.getCode()))
.then();
}
我想要实现的是在同一个事务下执行 2 个存储库调用,这样,例如,如果.delete(...)
调用失败,则.save(...)
开箱即用地执行先前的回滚。我做了不同的测试,到目前为止我找不到让它工作的方法。
我不知道这是否可能以反应方式进行,只要当执行跳转到平面图块时,它TransactionAspectSupport
似乎就丢失了(用调试器检查过)。
你能给我一些关于如何实现这一目标的建议吗?提前致谢