Чем N+1 problem отличается от fetch join и когда что выбрать?
Что хотят услышать интервьюеры:
Сравнение: N+1 problem стоит сравнивать с fetch join по критериям читаемости, безопасности, производительности, тестируемости и поддержки командой.
Ответ:
Когда выбирать N+1 problem: когда его свойства прямо соответствуют задаче: N+1 возникает, когда для каждой строки выполняется отдельный запрос связи.
Слабый ответ: “так принято в Spring/Java”. На собеседовании лучше объяснить ограничения и цену выбора.
select u from User u join fetch u.orders