Cómo utilizar la transacción de primavera en multiproceso

Tengo un método como el siguiente:

<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>

¿Puede el methodB funcionar bien? Según tengo entendido, el método B adjuntará la transacción del método A, ¿qué sucede si el método A sale antes que el método B? Supongo que solo el método A puede ser comprometido por la transacción. Pero methodB no se comprometerá porque la transacción se comprometió antes.

¿Puedo usar @Transactional (propagation = Propagation.REQUIRES_NEW) para methodB. Esto puede permitir a methodB tener una nueva transacción. Pero según Spring Doc, la trascendencia del método A se suspenderá cuando invoque methodB. Me siento muy confundido aquí.

¿Puede alguien ayudarme en este asunto? Gracias por adelantado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta