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

Что будет, если не поставить аннотацию Transactional над методом, в котором создается одна запись

Без аннотации @Transactional метод выполнится без транзакции. Если произойдет ошибка после сохранения сущности, изменения не откатятся. Пример:

java
public void saveUser(User user) {
    userRepository.save(user); // запись сохранится в БД
    throw new RuntimeException(); // но исключение не откатит запись
}

Без транзакции:

  • Каждый вызов репозитория выполняется в отдельной транзакции (если репозиторий сам не помечен @Transactional)
  • Нет гарантии атомарности операций
  • Нет управления уровнем изоляции
  • Нет автоматического отката при исключении

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

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

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

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

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