Получить доступ

ORM и доступ к данным

Основа с Junior

Hibernate, SQLAlchemy и аналоги — persistence context, ленивая загрузка, N+1.

Что важно знать

  • ORM отображает строки на объекты и избавляет от рутины, но SQL под ним никуда не исчезает — его нужно видеть в логах.
  • N+1: загрузили список, а связанные сущности подгружаются по одной. Лечится JOIN FETCH, entity graph, пакетной загрузкой.
  • Persistence context: кэш первого уровня, отслеживание изменений, сброс при коммите.
  • Ленивая загрузка вне транзакции — LazyInitializationException и аналоги.
  • Отчёты и сложные выборки — часто лучше SQL или проекции.

Критерии освоения

Junior ≈ 6 ч

  • Сохраняет и загружает сущности через ORM и пишет параметризованные запросы

Практика. Реализовать репозиторий заказов через ORM с тестами на реальной базе.

Middle ≈ 8 ч

  • Находит и устраняет проблему N+1 жадной загрузкой или отдельным запросом
  • Объясняет жизненный цикл сущности и persistence context
  • Решает, когда писать SQL вручную вместо ORM

Практика. Найти N+1 в учебном проекте по логу SQL, исправить и замерить число запросов до и после.

Вопросы с собеседований

Разборы темы

← Вся карта «Backend-разработчик»

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем