tengo un método de la siguiente manera:Cómo utilizar la transacción primavera en multihilo
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();
}
¿Puede el methodB funcionar bien? Según entiendo, el método B adjuntará la transacción del método A, ¿y si el método A sale antes del método B? Supongo que solo el método A puede ser comprometido por la transacción. Pero el método B no confirmará porque la transacción se haya comprometido antes.
¿Puedo utilizar @Transactional (propagation = Propagation.REQUIRES_NEW) para methodB. Esto puede permitir que el método B tenga una nueva transacción. Pero según el documento de primavera, la transcaturación del método A se suspenderá cuando invoque el método B. Me siento muy confundido aquí.
¿Alguien me puede ayudar con este problema? Gracias por adelantado.
¿qué es exactamente lo que quieres que haga? –