🚫 Spring Boot: избегай FetchType.
Когда ты помечаешь связь как EAGER, ORM будет загружать её КАЖДЫЙ раз при загрузке сущности, даже если тебе эти данные вообще не нужны.
Что это значит на практике:
❌ Ты загружаешь Order - автоматически тянется и Customer
❌ Даже если ты не обращаешься к customer в коде
❌ Растёт объём данных, время запроса и нагрузка на БД
А дальше классика жанра — N+1 проблема:
1 запрос - получить список всех Orders
+ N запросов - получить Customer для каждого Order
И всё, производительность улетела.
EAGER кажется удобным, но это скрытая ловушка.
Гораздо безопаснее по умолчанию использовать LAZY и явно управлять загрузкой через JOIN FETCH, EntityGraph или DTO-проекции.
Контроль > магия.
Java библиотека