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() {
// კოდი, რომელიც შესრულდება ახალი ტრანზაქციაში
}
}
თუ მეთოდი გამოიძახება სხვა მეთოდიდან, რომელიც უკვე ტრანზაქციაშია, მიმდინარე ტრანზაქცია შეჩერდება და დაიწყება ახალი. ეს სასარგებლოა, როდესაც საჭიროა დამოუკიდებელი ოპერაციის განხორციელება ცალკე ტრანზაქციით.