Middle+
Koľko transakcií sa otvorí, ak v triede sú dve metódy, z ktorých každá má @Transactional propagation REQUIRES_NEW, a z prvej voláme druhú?
sobes.tech AI
Odpoveď od AI
Pri použití anotácie @Transactional s propagation = REQUIRES_NEW bude každá metóda vykonaná v svojej vlastnej samostatnej transakcii. Keď je volaná prvá metóda, otvorí sa prvá transakcia. Pri volaní druhej metódy z prvej je aktuálna transakcia pozastavená a otvorí sa nová pre druhú metódu. Po dokončení druhej metódy sa táto transakcia zatvorí a prvá pokračuje.
Celkom sa otvorí 2 transakcie: jedna pre prvú a jedna pre druhú.
Príklad:
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodOne() {
// transakcia 1
methodTwo(); // volanie druhej metódy
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodTwo() {
// transakcia 2
}