Sobes.tech
Senior

Ի՞նչ է տալիս @Transactional նշումը և ինչ հատկություններ ունի:

sobes.tech AI

Պատասխան AI-ից

Java- ում @Transactional նշումը օգտագործվում է գործարքների կառավարում համար մեթոդների կամ դասերի մակարդակով: Այն երաշխավորում է, որ գործարքի ներսում բոլոր գործողությունները կատարվեն ագրեգատորեն՝ կամ բոլորը հաջողությամբ, կամ սխալի դեպքում կատարվի վերականգնում:

@Transactional-ի հիմնական հատկությունները՝

  • propagation — որոշում է գործարքի վարքագիծը այլ գործարքային կոնտեքստից կանչելիս (օրինակ, REQUIRED, REQUIRES_NEW):
  • isolation — գործարքի մեկուսացման մակարդակը (READ_COMMITTED, SERIALIZABLE և այլն), ազդում է տվյալների տեսանելիության վրա:
  • timeout — սպասման ժամանակը գործարքի ավարտին, որի ավարտից հետո այն կդադարեցվի:
  • readOnly — նշում է, որ գործարքը միայն ընթերցանության համար է, ինչը կարող է օպտիմալացնել տվյալների բազայի հետ աշխատանքը:
  • rollbackFor / noRollbackFor — արտահայտչական դասեր, որոնց դեպքում գործարքը կվերականգնվի կամ ոչ:

Օրինակ՝

@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, timeout = 30, readOnly = false)
public void updateData() {
    // բիզնես տրամաբանություն
}