Spring middle

Когда нужен REQUIRES_NEW?

Ответ

Когда нужна НЕЗАВИСИМАЯ транзакция, которая сохранится даже при rollback основной: текущая транзакция приостанавливается, открывается новая с отдельным соединением и коммитится сама по себе. Примеры: запись аудит-лога (должна остаться при ошибке), отправка уведомления, счётчик попыток.

Разбор: REQUIRES_NEW приостанавливает текущую транзакцию и открывает полностью независимую с отдельным соединением, которая коммитится сама по себе и переживёт rollback внешней — отсюда аудит-логи и счётчики попыток. Дистракторы путают его с другими механизмами: частичный откат до savepoint — это NESTED, переиспользование транзакции — это REQUIRED, а независимая транзакция, наоборот, не делится своими незакоммиченными данными с внешней.

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

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