Добавить в корзинуПозвонить
Найти в Дзене
Java

🚫 Spring Boot: не используй FetchType.EAGER без реальной необходимости

Кажется удобным, но на практике это ловушка. Когда ты ставишь EAGER, ORM начинает загружать связи всегда, даже если они тебе вообще не нужны. Что происходит под капотом: ❌ Загружается лишнее ❌ Растёт нагрузка на БД ❌ Ухудшается производительность И самое неприятное 👇 Ты получаешь классический N+1 problem: - 1 запрос на все Orders - + N запросов на связанные Customers И это может убить приложение на проде. 👉 Правильный подход: - по умолчанию используй LAZY - загружай связи явно (fetch join / entity graph) - контролируй, что и когда тянется из БД EAGER - это не удобство. Это скрытый источник проблем.

🚫 Spring Boot: не используй FetchType.EAGER без реальной необходимости

Кажется удобным, но на практике это ловушка.

Когда ты ставишь EAGER, ORM начинает загружать связи всегда,

даже если они тебе вообще не нужны.

Что происходит под капотом:

❌ Загружается лишнее

❌ Растёт нагрузка на БД

❌ Ухудшается производительность

И самое неприятное 👇

Ты получаешь классический N+1 problem:

- 1 запрос на все Orders

- + N запросов на связанные Customers

И это может убить приложение на проде.

👉 Правильный подход:

- по умолчанию используй LAZY

- загружай связи явно (fetch join / entity graph)

- контролируй, что и когда тянется из БД

EAGER - это не удобство.

Это скрытый источник проблем.