Sobes.tech
Junior — Middle

როგორ შეიძლება შეცვალოთ Spring-ში @Transactional-ის ანოტაციის ფუნქციონალი საჭირო შედეგების მისაღწევად?

sobes.tech AI

პასუხი AI-სგან

Spring-ში @Transactional ანოტაცია მართავს ტრანზაქციებს მეთოდების ან კლასის დონეზე. მისი ქცევის შეცვლისთვის, შეგიძლიათ გამოიყენოთ ანოტაციის პარამეტრები ან შექმნათ საკუთარი ასპექტები.

ძირითადი ცვლილების გზები:

  • ანოტაციის პარამეტრები:

    • propagation — განსაზღვრავს შიგნიდან ტრანზაქციების ქცევას.
    • isolation — ტრანზაქციების იზოლაციის დონე.
    • timeout — ელოდების დრო ტრანზაქციისთვის.
    • readOnly — ოპტიმიზაცია მხოლოდ წაკითხვადი ოპერაციებისათვის.
    • rollbackFor და noRollbackFor — მიუთითებს, რომელი გამონაკლისების დროს უნდა მოხდეს ან არ მოხდეს ტრანზაქციის გადატანა.
  • საკუთარი ასპექტის შექმნა: შეგიძლიათ დაწეროთ საკუთარი ასპექტი Spring AOP-ის გამოყენებით, რომელიც იჭერს მეთოდების გამოძახებებს და დამატებით ლოგიკას უგებს ტრანზაქციებს.

პარამეტრების გამოყენების მაგალითი:

@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void someMethod() {
    // კოდი
}