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