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