Зачем нужна аннотация @Transactional?

@Transactional задаёт границу и параметры транзакции: propagation, isolation, timeout и правила rollback. Spring применяет их через настроенный transaction manager и механизм перехвата вызова.

Короткий ответ

Что ответить на собеседовании

@Transactional задаёт границу и параметры транзакции: propagation, isolation, timeout и правила rollback. Spring применяет их через настроенный transaction manager и механизм перехвата вызова.

Подробный разбор

Ответ с пояснениями

@Transactional задаёт границу и параметры транзакции: propagation, isolation, timeout и правила rollback. Spring применяет их через настроенный transaction manager и механизм перехвата вызова.

По умолчанию обычно используется REQUIRED: присоединиться к существующей транзакции либо открыть новую. Стандартные правила предусматривают rollback для RuntimeException и Error, но не для любого checked exception без настройки. Аннотация не объединяет автоматически запись в БД с HTTP-вызовом в одну атомарную операцию. В proxy-режиме важен вызов через прокси: внутренний this-вызов не создаёт отдельного перехвата.

Источник: docs.spring.io.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее