Jak korzystać z wiosennej transakcji w wielowątkowości

Mam metodę jak poniżej:

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

Czy metoda B działa dobrze? Zgodnie z moim zrozumieniem metoda B dołącza transakcję metody A, a jeśli metoda A kończy się przed methodB? Myślę, że tylko metoda A może zostać zatwierdzona przez transakcję. Ale methodB nie dokona zatwierdzenia, ponieważ transakcja została zatwierdzona wcześniej.

Czy mogę użyć @Transactional (propagacja = Propagation.REQUIRES_NEW) dla metodyB. To może pozwolić metodzie B na nową transakcję. Jednak zgodnie z wiosennym dokumentem transkrypcja metodyA zawiesza się, gdy wywołuje metodęB. Czuję się tu bardzo zagubiony.

Czy ktoś może mi pomóc w tej kwestii? Z góry dziękuję.

questionAnswers(1)

yourAnswerToTheQuestion