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

Какой уровень изоляции выбрать для таблицы пользователей, где каждый пользователь может изменять только свою строку, а администратор - менять любые данные

Для такой задачи подойдет уровень изоляции READ_COMMITTED. Он предотвращает "грязное чтение", но позволяет другим транзакциям видеть изменения после коммита.

Почему именно READ_COMMITTED?

  • Пользователи видят только закоммиченные данные.
  • Администратор может изменять любые строки без блокировки всей таблицы.
  • Нет избыточных блокировок, как в SERIALIZABLE.

Пример:

java
@Transactional(isolation = Isolation.READ_COMMITTED)
public void updateUserProfile(Long userId, UserData newData) {
    // Обновляем только своего пользователя
    userRepository.save(newData);
}

Если нужна защита от фантомного чтения (например, для отчетов администратора), можно использовать REPEATABLE_READ.

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

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

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

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