Sobes.tech
Junior — Middle

როგორ დავიწყოთ ახალი ტრანზაქცია @Service-ის ნიშნით აღჭურვილ მეთოდში?

sobes.tech AI

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

Spring-ში, ახალი ტრანზაქციის დასაწყებად მეთოდში, რომელიც აღნიშნულია როგორც @Service, გამოიყენება @Transactional ანოტაცია პარამეტრით propagation = Propagation.REQUIRES_NEW. ეს ნიშნავს, რომ ასეთი მეთოდის გამოძახებისას, შექმნილი იქნება ახალი ტრანზაქცია, მიუხედავად იმისა, რომ უკვე არსებობს აქტიური ტრანზაქცია.

მაგალითი:

@Service
public class MyService {

    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void newTransactionMethod() {
        // კოდი, რომელიც შესრულდება ახალი ტრანზაქციაში
    }
}

თუ მეთოდი გამოიძახება სხვა მეთოდიდან, რომელიც უკვე ტრანზაქციაშია, მიმდინარე ტრანზაქცია შეჩერდება და დაიწყება ახალი. ეს სასარგებლოა, როდესაც საჭიროა დამოუკიდებელი ოპერაციის განხორციელება ცალკე ტრანზაქციით.