Como usar a transação de primavera em multithread

Eu tenho um método como abaixo:

<code>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();
}
</code>

O método B pode funcionar bem? Pelo meu entendimento, o método B anexará a transação do método A, e se o método A sair antes do método B? Eu acho que apenas methodA pode ser confirmado pela transação. Mas o methodB não irá confirmar porque a transação foi confirmada antes.

Posso usar @Transactional (propagation = Propagation.REQUIRES_NEW) para methodB. Isso pode permitir que o método B tenha uma nova transação. Mas, de acordo com o doc da primavera, a transcração do método A será suspensa quando invocar o método B. Eu me sinto muito confuso aqui.

Alguém pode me ajudar nessa questão? Desde já, obrigado.

questionAnswers(1)

yourAnswerToTheQuestion