A Hibernate Query Language (HQL) a Hibernate saját, az SQL-hez nagyon hasonló lekérdező nyelve. Az SQL-el szemben azonban teljesen objektumorientált, így olyan lekérdezéseket írhatunk benne, melyekben a táblák és oszlopok helyett osztályneveket és adattagokat használhatunk. A HQL objektum-relációs modellre épül, rendkívül erőteljes, kezeli az öröklődést, a polimorfizmust és az asszociációt.
A Java osztályok és tulajdonságok kivételével a lekérdezések kis- és nagybetű érzéketlenek, tehát a SeLeCT megegyezik a sELEct-el illetve SELECT-tel, de az org.hibernate.eg.FOO nem azonos az org.hibernate.eg.Foo-val.
from Cat as cat
nem csak a Cat osztály, hanem annak leszármazottjainak a példányait is visszaadja.
Minden HQL a következő elemeket tartalmazhatja:
HQL lekérdezések összesítő függvények eredményét is visszaadhatják. A támogatott függvények a következők:
Aritmetikai operátorok, konkatenáció és SQL függvények is szerepelhetnek a select záradékban. Példák:
select cat.weight + sum(kitten.weight)
from Cat cat
join cat.kittens kitten
group by cat.id, cat.weight
select firstName||' '||initial||' '||upper(lastName) from Person
Az allekérdezés nem más, mint egy lekérdezésbe ágyazott lekérdezés.