Использовал ли ты HQL, Native Query, JDBC напрямую? Батчинг в Hibernate?

В вопросе об опыте назовите только реально использованные подходы:

Короткий ответ

Что ответить на собеседовании

В вопросе об опыте назовите только реально использованные подходы:

Подробный разбор

Ответ с пояснениями

В вопросе об опыте назовите только реально использованные подходы:

  • HQL — запросы к сущностям и их свойствам через Hibernate.
  • Native query — SQL, выполняемый через ORM, например для возможностей конкретной СУБД.
  • JDBC — прямое управление соединениями, подготовленными запросами и результатами.

JDBC batching в Hibernate объединяет совместимые INSERT/UPDATE в пакеты, уменьшая число сетевых обращений. Это не превращает разные операции в один логический SQL-запрос.

Пример настроек:

hibernate.jdbc.batch_size=50
hibernate.order_inserts=true
hibernate.order_updates=true

В длинном цикле сохранения сущностей через persist() периодические flush() и clear() ограничивают размер persistence context. Операции выполняют в транзакции с обработкой ошибки и откатом.

Размер 50 — пример, а не универсальный оптимум или гарантия ровно 50 записей в каждом пакете. Бatching зависит от совместимости SQL и драйвера; генерация идентификаторов IDENTITY препятствует batching вставок в Hibernate. Результат проверяют по фактическим SQL и измерениям.

Hibernate: JDBC batching.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку