@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(..)
}
}