Встречается на собеседованиях • сегодня
Что такое конкуренция между транзакциями
Конкуренция транзакций возникает, когда несколько транзакций пытаются одновременно получить доступ к одним и тем же данным в БД. Основные проблемы:
- Lost Update - две транзакции читают данные, затем обе изменяют их, но сохраняется только последнее изменение.
- Dirty Read - чтение незафиксированных данных другой транзакции.
- Non-repeatable Read - разные результаты при повторном чтении в одной транзакции.
- Phantom Read - появление новых строк при повторном запросе.
Пример:
java
// Транзакция 1
entityManager.getTransaction().begin();
Product p = entityManager.find(Product.class, 1); // Читает product
// Транзакция 2 в это время изменяет product
p.setPrice(p.getPrice() + 100); // Может перезаписать изменения
entityManager.getTransaction().commit();Решение - уровни изоляции (READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE) и блокировки (оптимистичные/пессимистичные).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы