Spring trainee

Какие propagation знаешь?

Ответ

REQUIRED (default) — использует существующую транзакцию или создаёт новую. REQUIRES_NEW — приостанавливает текущую и создаёт новую независимую транзакцию. Полезно для аудита: должно записаться, даже если основная транзакция упала.

Разбор: REQUIRED переиспользует текущую транзакцию или создаёт новую; REQUIRES_NEW приостанавливает текущую и открывает отдельную независимую транзакцию (удобно для аудита, который должен закоммититься даже при откате основной). Ловушки: REQUIRED и REQUIRES_NEW меняют местами поведение; NESTED (savepoint внутри той же физической транзакции) путают с REQUIRES_NEW; MANDATORY на самом деле требует существующую транзакцию, а не создаёт новую.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться