Junior — Middle
Hogyan indíthatunk el egy új tranzakciót egy @Service-nek jelölt módszerben?
sobes.tech MI
Válasz az MI-től
В Spring для инициирования новой транзакции внутри метода, аннотированного как @Service, используется аннотация @Transactional с параметром propagation = Propagation.REQUIRES_NEW. Это означает, что при вызове такого метода будет создана новая транзакция, даже если уже существует активная транзакция.
Пример:
@Service
public class MyService {
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void newTransactionMethod() {
// код, выполняемый в новой транзакции
}
}
Если метод вызывается из другого метода, который уже находится в транзакции, текущая транзакция будет приостановлена, а новая начата. Это полезно, когда нужно выполнить независимую операцию с отдельной транзакцией.