我有一個方法如下:
ClassA.java
@Transactional
public void methodA(){
ExecutorService executorService = Executors.newFixedThreadPool(4);
executorService.execute(new Runnable() {
public void run() {
classB.methodB();
}
});
}
ClassB.java
@Transactional
public void methodB(){
updateDB();
}
方法B可以正常工作嗎?根據我的了解,methodB将附加方法A的事務,如果methodA退出方法B之前呢?我想隻有methodA可以由事務送出。但是methodB不會送出,因為事務送出之前。
我可以使用的methodB @Transactional(傳播= Propagation.REQUIRES_NEW)。這可以讓methodB有一個新的事務。但根據spring doc,methodA的轉換将在它調用methodB時挂起。我覺得很混亂這裡。
任何人可以幫助我這個問題?提前緻謝。