Sobes.tech
Middle+

Bir sinifda iki metod olsa və hər biri @Transactional propagation REQUIRES_NEW ilə işarələnmişsə və birinci metod ikincisini çağırırsa, neçə tranzaksiya açılacaq?

sobes.tech Süni İntellekt

AI-dan cavab

@Transactional qeydi propagation = REQUIRES_NEW ilə istifadə olunduqda, hər bir metod özünün ayrıca tranzaksiyasında işləyəcək. Birinci metod çağırıldıqda, ilk tranzaksiya açılır. Birinci metoddan ikinci metod çağırıldıqda, cari tranzaksiya dayandırılır və ikinci metod üçün yeni tranzaksiya açılır. İkinci metod tamamlandıqda, bu tranzaksiya bağlanır və birinci metod davam edir.

Ümumilikdə, 2 tranzaksiya açılacaq: biri birinci metod üçün və digəri ikinci üçün.

Nümunə:

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodOne() {
    // tranzaksiya 1
    methodTwo(); // ikinci metodun çağırılması
}

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodTwo() {
    // tranzaksiya 2
}