Hibernate / JPA middle
N+1 в JPA — как диагностировать?
Ответ
Включить логи SQL (spring.jpa.show-sql=true), смотреть количество запросов на эндпоинт, использовать p6spy или Hibernate Statistics.
Разбор: N+1 диагностируется по числу выполненных SQL-запросов на один эндпоинт: логирование (show-sql), p6spy/datasource-proxy или Hibernate Statistics (generate_statistics) показывают, что вместо одного запроса уходят десятки. Ловушки: одиночный лог-запрос не гарантирует отсутствия N+1 (доп. запросы идут позже при обращении к lazy-связям), а LazyInitializationException и нагрузка на GC — это про другие проблемы, не про подсчёт запросов.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.