Способы победить N+1
Вопрос
Как исправить N+1 в Spring Data JPA?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Ответ
join fetch в @Query, @EntityGraph(attributePaths = ...) на методе репозитория, @BatchSize или hibernate.default_batch_fetch_size, DTO-проекция с нужными полями. Найти проблему помогают логи SQL, статистика Hibernate и тесты с подсчётом запросов.
Разбор
join fetch в @Query, @EntityGraph(attributePaths = ...) на методе репозитория, @BatchSize или hibernate.default_batch_fetch_size, DTO-проекция с нужными полями. Найти проблему помогают логи SQL, статистика Hibernate и тесты с подсчётом запросов.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.