Hibernate / JPA middle
Что такое N+1 проблема?
Ответ
1 findAll() + N доп. запросов на lazy-коллекции. Решения: JOIN FETCH, @EntityGraph, @BatchSize(100), DTO-проекция. EAGER — неправильный ответ.
Разбор: N+1 — это 1 запрос на родительскую коллекцию плюс N дополнительных запросов на lazy-связи при итерации; решается JOIN FETCH, @EntityGraph, @BatchSize или DTO-проекцией. Дистракторы подменяют тему: индекс на FK ускоряет каждый запрос, но не меняет их количество; EAGER не решение, а способ получить тот же N+1 неявно; batch_size относится к вставкам, а не к чтению связей.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.