Junior — Middle
Tranzaktsiyalarni boshqarishda tarqalish darajalari nima ekanligini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Transaksiya boshqaruvida tarqalish darajalari, o'zlari ham tranzaktsiyali bo'lishi mumkin bo'lgan metodlarni chaqirishda tranzaktsiya qanday harakat qilishini belgilaydi. Bu, metod mavjud tranzaktsiyani ishlatadimi, yangi yaratadimi yoki tranzaktsiyasiz ishlaydimi, tushunish uchun muhimdir.
Spring (Java) da asosiy tarqalish darajalari:
- REQUIRED (standart): agar hozirgi tranzaktsiya mavjud bo'lsa, metod unga qo'shiladi, aks holda yangi yaratiladi.
- REQUIRES_NEW: har doim yangi tranzaktsiya yaratadi, hozirgi (agar mavjud bo'lsa) to'xtatiladi.
- SUPPORTS: agar tranzaktsiya bo'lsa, metod unda ishlaydi, aks holda tranzaktsiyasiz.
- NOT_SUPPORTED: metod har doim tranzaktsiyasiz bajariladi, hozirgi tranzaktsiya to'xtatiladi.
- MANDATORY: metod mavjud tranzaktsiyada bajarilishi kerak, aks holda xato chiqariladi.
- NEVER: metod tranzaktsiyada bajarilmasligi kerak, aks holda xato chiqariladi.
- NESTED: agar tranzaktsiya bo'lsa, ichki (saqlash nuqtasi) tranzaktsiya yaratiladi, aks holda yangi.
Misol:
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void saveData() {
// bu metod har doim yangi tranzaktsiyada
}