让我们有两个不同的 ReactiveMongoRepository
mongo存储库:
@Autowired
private CurrencyRepository currencyRepository;
@Autowired
private CurrencyArchiveRepository currencyArchiveRepository;
以及一个@transactional方法,它调用两个存储库,以React式方式链接它们的调用:
@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(...)
从盒子里滚出来。我做了不同的测试,到目前为止我还没有找到一个方法让它工作。
我不知道这是否是可行的React方式,只要执行跳转到flatmap块 TransactionAspectSupport
似乎丢失了(用调试器检查)。
你能给我一些如何实现这一目标的建议吗?提前谢谢
1条答案
按热度按时间bfhwhh0e1#
默认情况下禁用mongo事务。你必须注册
ReactiveMongoTransactionManager
在config类中启用它。在此之后,它应该是正常工作。