Spring trainee
Какие propagation знаешь?
Ответ
REQUIRED (default) — использует существующую транзакцию или создаёт новую. REQUIRES_NEW — приостанавливает текущую и создаёт новую независимую транзакцию. Полезно для аудита: должно записаться, даже если основная транзакция упала.
Разбор: REQUIRED переиспользует текущую транзакцию или создаёт новую; REQUIRES_NEW приостанавливает текущую и открывает отдельную независимую транзакцию (удобно для аудита, который должен закоммититься даже при откате основной). Ловушки: REQUIRED и REQUIRES_NEW меняют местами поведение; NESTED (savepoint внутри той же физической транзакции) путают с REQUIRES_NEW; MANDATORY на самом деле требует существующую транзакцию, а не создаёт новую.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.