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

Приведи пример когда возникает Phantom Read

Phantom Read возникает, когда в рамках одной транзакции повторный запрос возвращает новые "фантомные" строки, добавленные другой транзакцией после первого запроса. Пример: ```java // Транзакция 1 entityManager.getTransaction().begin(); List users1 = entityManager.createQuery("SELECT u FROM User u", User.class).getResultList(); // 10 записей // Транзакция 2 (параллельно) entityManager.getTransaction().begin(); User newUser = new User("Phantom"); entityManager.persist(newUser); entityManager.getTransaction().commit(); // Добавили 11-ю запись // Транзакция 1 повторяет запрос List users2 = entityManager.createQuery("SELECT u FROM User u", User.class).getResultList(); // Теперь 11 записей! entityManager.getTransaction().commit(); ``` Уровень изоляции `READ_COMMITTED` не защищает от этого. Нужен `SERIALIZABLE` или блокировки.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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