Senior
@Transactional annotatsiyasi nima beradi va uning atributlari qanday?
sobes.tech AI
AIdan javob
Java'da @Transactional anotasyonu metodlar yoki sinflar darajasida tranzaksiyalarni boshqarish uchun ishlatiladi. U tranzaksiya ichidagi barcha operatsiyalar atomik tarzda bajarilishini kafolatlaydi: yoki hammasi muvaffaqiyatli yoki xato yuz bersa, rollback amalga oshiriladi.
@Transactionaldagi asosiy atributlar:
- propagation — boshqa tranzaksion kontekstdan chaqirilganda tranzaksiya xulqini belgilaydi (masalan, REQUIRED, REQUIRES_NEW).
- isolation — tranzaksiya izolyatsiya darajasi (READ_COMMITTED, SERIALIZABLE va boshqalar), ma'lumotlarning ko'rinishiga ta'sir qiladi.
- timeout — tranzaksiya tugashini kutish vaqti, undan so'ng u to'xtatiladi.
- readOnly — tranzaksiya faqat o'qish uchun ekanligini ko'rsatadi, bu ma'lumotlar bazasi bilan ishlashni optimallashtirishi mumkin.
- rollbackFor / noRollbackFor — rollback qilinadigan yoki qilinmaydigan xatolik sinflari.
Misol:
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, timeout = 30, readOnly = false)
public void updateData() {
// biznes logika
}