Встречается на собеседованиях • сегодня
Приведи пример когда возникает 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` или блокировки.

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