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

От чего защищает @Transactional

@Transactional обеспечивает атомарность операций в Spring-приложениях. Основные защиты:

  1. Целостность данных - либо все операции в транзакции выполняются, либо ни одна (ACID-принцип)
  2. Изоляция - предотвращает грязное чтение, неповторяемое чтение и фантомные чтения
  3. Согласованность - данные остаются валидными после транзакции

Пример:

java
@Transactional
public void transferMoney(Account from, Account to, BigDecimal amount) {
    from.debit(amount);  // Если это выполнится,
    to.credit(amount);   // а это упадёт - дебет откатится
}

По умолчанию:

  • Propagation: REQUIRED (использует текущую транзакцию или создаёт новую)
  • Isolation: DEFAULT (уровень БД)
  • ReadOnly: false
  • RollbackFor: RuntimeException и Error

Важно: @Transactional работает только через Spring AOP, поэтому вызовы внутри одного класса не будут проксироваться.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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