vanishalone

@Transactional+@Async期望异步方法在事务提交

2021-05-21  本文已影响0人  zhimin_

@Transactional 内部调用 @Async方法,期望异步方法再事务提交后执行,可以使用TransactionSynchronizationManager类实现

class A {
 
    @Autowired
    private B b;
    
    @Transactional
    public void updateA(..) {
        batchInsert(..);
        update(..);
        TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
            @Override
            public void afterCommit() {
                b.updateB(..);
            }
        });
    }

}
    
class B {
 
    @Async
    public void updateB(..) {
        update(..)
    }
 
}
上一篇下一篇

猜你喜欢

热点阅读