Sobes.tech
Junior — Middle

Əməliyyatların idarə olunmasında yayılma səviyyələrinin nə olduğunu izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Əməliyyatların idarə olunmasında yayılma səviyyələri, özləri də tranzaksiyalı ola biləcək metodları çağırarkən, tranzaksiyanın necə davranacağını müəyyən edir. Bu, metodun mövcud tranzaksiyanı istifadə edib etməyəcəyini, yeni yaradıb-yaratmayacağını və ya tranzaksiyasız işləyib-işləməyəcəyini anlamaq üçün vacibdir.

Spring (Java) içində əsas yayılma səviyyələri:

  • REQUIRED (varsayılan): əgər mövcud tranzaksiya varsa, metoda ona qoşulur, yoxsa yeni yaradılır.
  • REQUIRES_NEW: həmişə yeni tranzaksiya yaradır, mövcud (əgər varsa) dayandırılır.
  • SUPPORTS: əgər tranzaksiya varsa, metod onun içində işləyir, yoxsa tranzaksiyasız.
  • NOT_SUPPORTED: metod həmişə tranzaksiyasız icra olunur, mövcud tranzaksiya dayandırılır.
  • MANDATORY: metod mövcud tranzaksiyada işləməlidir, yoxsa istisna atılır.
  • NEVER: metod tranzaksiyada işləməməlidir, yoxsa istisna atılır.
  • NESTED: əgər tranzaksiya varsa, iç-içə (saxlama nöqtəsi) tranzaksiya yaradılır, yoxsa yeni.

Nümunə:

@Transactional(propagation = Propagation.REQUIRES_NEW)
public void saveData() {
    // bu metod həmişə yeni tranzaksiyada olur
}