Middle+
Cik daudz transakciju tiks atvērts, ja vienā klasē ir divas metodes, katra ar @Transactional propagation REQUIRES_NEW, un no pirmās metodes izsauc otro?
sobes.tech AI
Atbilde no AI
Izmantojot @Transactional anotāciju ar propagation = REQUIRES_NEW, katra metode tiks izpildīta savā atsevišķā transakcijā. Kad tiek izsaukta pirmā metode, tiek atvērta pirmā transakcija. Kad no pirmās tiek izsaukta otrā metode, pašreizējā transakcija tiek apturēta, un tiek atvērta jauna transakcija otrajai metodei. Pēc otrās metodes pabeigšanas, šī transakcija tiek slēgta, un pirmā turpina.
Kopumā tiks atvērtas 2 transakcijas: viena pirmajai metodei un otra otrajai.
Piemērs:
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodOne() {
// transakcija 1
methodTwo(); // otrās metodes izsaukums
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodTwo() {
// transakcija 2
}