我有一个方法如下:
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时挂起。我觉得很混乱这里。
任何人可以帮助我这个问题?提前致谢。