Назад к вопросам
Junior — Middle
105
Можешь рассказать о различных видах Propagation, которые можно задать в аннотации @Transactional?
Ответ от нейросети
sobes.tech AI
В аннотации @Transactional в Spring можно задать различные виды Propagation, которые определяют поведение транзакций при вызове методов:
REQUIRED(по умолчанию): если транзакция уже есть, использовать её, иначе создать новую.REQUIRES_NEW: всегда создать новую транзакцию, при этом существующая (если есть) приостанавливается.SUPPORTS: если транзакция есть, использовать её, иначе выполнять без транзакции.NOT_SUPPORTED: выполнять без транзакции, при этом существующая транзакция приостанавливается.MANDATORY: должен быть существующая транзакция, иначе выбрасывается исключение.NEVER: выполнять без транзакции, если транзакция есть — выбрасывается исключение.NESTED: если транзакция есть, создать вложенную транзакцию (savepoint), иначе создать новую.
Пример:
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void someMethod() {
// код
}