Spring @Transactional无法与CompletableFuture一起使用

时间:2018-11-23 03:26:09

标签: java spring spring-boot spring-transactions completable-future

@Transactional(rollbackFor = Exception.class)
public void test(){
    CompletableFuture cf1 = CompletableFuture.runAsync(()-> dbMapper.insert());

    CompletableFuture cf2 = CompletableFuture.runAsync(()->{
        dbMapper.insert();
        throw new RuntimeException();
    });
    CompletableFuture.allOf(cf1, cf2).join(); // this will throw CompletionException
}

在以上代码中,当insert()引发任何异常时,我想回退cf1cf2中的join()操作。但是实际上没有回滚发生。

如何使其起作用?还是还有其他方法?

0 个答案:

没有答案