TGViewer
Spring АйО Spring АйО @spring_aio · 10.9K subscribers
Post #1110 6.51K
❓ Что вам нужно знать про семантику List и Set в Hibernate

Казалось бы, ну коллекция и коллекция. Положил List или Set в entity, и живи спокойно. А потом на проде внезапно появляется пачка странных DELETE/INSERT, транзакция тяжелеет, и кто-то обязательно говорит: «Ну это же Hibernate, он такой». Звучит удобно. Только вот удобство это обычно маскирует другое: вы сами сказали ORM одно, а ожидали совсем другое.

Использование List и Set для Hibernate это особый сигнал. И от того, какой сигнал вы подали, зависит и SQL, и то, поедет ли у вас Lazy Loading в самый неподходящий момент. Иногда разница выглядит мелкой, но она крайне важна.

Если вы хотите не очередной свод правил «делайте так, потому что так принято», а понять, почему ответ именно такой, заходите. Разберёмся без магии и без списания вины на Hibernate.

P.S: Данную статью мы написали по мотивам вопросов, возникших у участников Spring АйО Академии. Спасибо всем тем, кто учавствовал в первом потоке!

📎 Полный текст: https://habr.com/ru/companies/spring_aio/articles/1059922/
  • 🔥 28
  • 👍 14
  • ❤ 6
  • 😁 2
  • ⚡ 1
More from @spring_aio
  1. Sep 25, 2026✏️ В JavaDoc предлагают добавить заметки, которые сложно пропустить В JavaDoc предлагают д…
  2. Sep 24, 2026🔥 Запись открытой лекции уже доступна Вчера прошла первая открытая лекция курса «Java в п…
  3. Sep 23, 2026🔥 УЖЕ СЕГОДНЯ В 20:00 — БЕСПЛАТНАЯ ЛЕКЦИЯ Друзья, начинаем через 15 минут! ❓ Тема: «Когда…
  4. Sep 22, 2026🆕 Вышел Opus 5.5. Уровень Fable за меньшие деньги Anthropic представила Claude Opus 5.5.…
  5. Sep 22, 2026🔥 УЖЕ ЗАВТРА — ОТКРЫТАЯ ЛЕКЦИЯ ДЛЯ ВСЕХ Завтра, 23 сентября встречаемся на первой ОТКРЫТО…
  6. Sep 22, 2026⚡️⚡️Joker 2026: что происходит с профессией разработчика Индустрия разработки проходит чер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →