Сопоставление Middle Транзакции и @Transactional обновлено

Propagation и поведение

Вопрос

Сопоставьте значение propagation и поведение при уже существующей транзакции.

Попробуйте сами

Нажмите слева, потом подходящее справа.

Показать ответ и разбор

Коротко

REQUIRED покрывает большинство случаев. REQUIRESNEW и NESTED дают независимый и частичный откат соответственно, MANDATORY и NEVER проверяют контракт вызова.

Правильные пары

REQUIRED
Присоединяется к текущей
REQUIRES_NEW
Приостанавливает текущую и открывает новую
NESTED
Создаёт savepoint внутри текущей
MANDATORY
Присоединяется, а без транзакции бросает исключение
NEVER
Бросает исключение, потому что транзакция есть

Разбор

REQUIRED покрывает большинство случаев. REQUIRES_NEW и NESTED дают независимый и частичный откат соответственно, MANDATORY и NEVER проверяют контракт вызова.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.