Встречается на собеседованиях • сегодня

Как работает @Transactional

Аннотация @Transactional в Spring управляет транзакциями на уровне метода или класса. Она автоматически начинает транзакцию перед вызовом метода и фиксирует её после успешного выполнения. Если возникает исключение, транзакция откатывается.

Ключевые параметры:

  • propagation: определяет поведение при вложенных транзакциях (например, REQUIRED, REQUIRES_NEW).
  • isolation: уровень изоляции (например, READ_COMMITTED).
  • rollbackFor: исключения, которые должны вызывать откат.
  • readOnly: оптимизация для операций чтения.

Пример:

java
@Service
public class UserService {
    @Transactional
    public void updateUser(User user) {
        // Логика обновления пользователя
    }
}

Нюансы:

  • Работает только с публичными методами (из-за проксирования).
  • Самовызов методов внутри класса не активирует транзакцию.
  • По умолчанию откатывает только при RuntimeException и Error.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы