Что делает ORM?
- Зачем нужен Hibernate?
ORM связывает объекты и таблицы: вы работаете с сущностями, а SQL для загрузки и сохранения генерируется автоматически.
- Плюсы: меньше шаблонного кода, отслеживание изменений, кэш первого уровня
- Минусы: скрытые запросы (N+1), сложность тюнинга, «протекающая абстракция»
- JPA — спецификация, Hibernate — реализация
А ещё Для отчётов и тяжёлых запросов — SQL или DTO-проекции
Подробно
Выгода в том, что исчезает рутина: не нужно вручную писать простые запросы и раскладывать результат по полям. Цена — потеря прозрачности: сгенерированный SQL не виден по коду, и типовые проблемы вроде N+1 запросов возникают незаметно. Отсюда практическое правило: ORM не освобождает от знания SQL, а требует умения посмотреть, какие запросы он на самом деле выполняет.
Что хотят услышать
- Что делает ORM.
- Плюсы и минусы.
- JPA и Hibernate.
Частые ошибки
- Считать, что ORM избавляет от необходимости знать SQL.
- Не включать логирование запросов и не видеть реальную нагрузку.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Оптимизирует запросы на стороне сервера базы, переписывая их под имеющиеся индексы
- ✗Заменяет реляционную базу на объектное хранилище внутри приложения
- ✗Управляет резервным копированием и восстановлением данных базы
- ✓Отображает объекты на строки таблиц и обратно, генерируя SQL
Что спросят дальше
- Откуда берётся проблема N+1 запросов?
- Что такое ленивая загрузка связи?
Разбор темы
- ORM, persistence context и N+1
Что делает ORM, lazy/eager и proxy, механизм N+1, способы лечения и типичные грабли.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.