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

Работал ли с @Transactional

Да, работал. @Transactional в Spring используется для управления транзакциями. Основные моменты:

  • Распространение (Propagation): например, REQUIRED (по умолчанию) — если транзакция есть, используется она, иначе создаётся новая.
  • Изоляция (Isolation): например, READ_COMMITTED — гарантирует, что читаются только закоммиченные данные.
  • Таймаут (Timeout): ограничивает время выполнения.
  • RollbackFor/NoRollbackFor: указывает, при каких исключениях откатывать транзакцию.

Пример:

java
@Service
public class UserService {
    @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, timeout = 30)
    public void updateUser(User user) {
        // Логика обновления пользователя
    }
}

Важно помнить:

  • @Transactional работает только на public-методах.
  • Самовызов (вызов метода из того же класса) обходит проксирование, и аннотация не сработает.
  • По умолчанию откатывается только на unchecked-исключениях (RuntimeException).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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