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
}