Назад к вопросам
Junior
109
questionbank

Что такое HQL (Hibernate Query Language)?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

HQL — объектно-ориентированный язык запросов, разработанный в рамках Hibernate для запросов к данным в реляционной базе данных, используя объекты доменной модели Java вместо таблиц и столбцов базы данных.

Основные особенности HQL:

  • Объектно-ориентированный: Запросы оперируют названиями классов сущностей и их свойствами, а не таблицами и столбцами SQL.
  • Независимость от диалекта SQL: HQL абстрагирует детали специфического SQL-диалекта базы данных, используемой Hibernate.
  • Поддержка полиморфизма: HQL может запрашивать классы-потомки в иерархии наследования.
  • Поддержка именованных параметров: Позволяет более безопасно передавать значения в запрос, предотвращая SQL-инъекции.
  • Возможность выполнять DML-операции: Поддерживает INSERT, UPDATE, DELETE.

Пример запроса HQL:

// Выбрать всех пользователей с именем "John Doe"
String hql = "FROM User WHERE name = :userName";
Query query = session.createQuery(hql);
query.setParameter("userName", "John Doe");
List<User> users = query.list();