Middle+
Hány tranzakció nyílik meg, ha egy osztályban két módszer van, mindkettő @Transactional propagation REQUIRES_NEW, és az első módszer hívja a másodikat?
sobes.tech MI
Válasz az MI-től
Amikor az @Transactional annotációt propagation = REQUIRES_NEW értékkel használjuk, minden módszer saját külön tranzakcióban fog végrehajtódni. Amikor az első módszert hívják, megnyílik az első tranzakció. Az első módszerből a második hívásakor a jelenlegi tranzakció szünetel, és egy új tranzakció nyílik a második módszerhez. A második módszer befejezése után ez a tranzakció bezárul, és az első folytatódik.
Összesen 2 tranzakció nyílik: egy az első és egy a második módszerhez.
Példa:
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodOne() {
// tranzakció 1
methodTwo(); // második módszer hívása
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodTwo() {
// tranzakció 2
}