Hibernate Query Language
Megjelenés
Hibernate Query Language
A Hibernate Query Language (HQL) a Hibernate saját, az SQL-hez nagyon hasonló lekérdező nyelve. Az SQL-el szemben azonban teljesen objektum-orientált, így olyan lekérdezéseket írhatunk benne, melyekben a táblák és oszlopok helyett osztályneveket és adattagokat használhatunk. 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.
A HQL használatának előnyei
- Teljes mértékben támogatja a relációs műveleteket. Lehetővé teszi SQL lekérdezések reprezentálását objektumok formájában. Osztályokat és tulajdonságokat használ táblák és oszlopok helyett.
- Az eredményt objektumként szolgáltatja, amit könnyű használni. Ezzel leveszi a vállunkról az objektum létrehozásának és az eredményhalmazban található adatokkal való feltöltésének feladatát.
- A HQL teljesen támogatja a polimorfikus lekérdezéseket. Polimorfikus lekérdezések szolgáltatják a lekérdezés eredményeket a származtatott objektumok mentén
- A Hibernate lekérdezéseket könnyű megtanulni, és egyszerűen implementálhatók az alkalmazásokban.
- Haladó funkciók támogatása: a HQL számos előremutató funkciót tartalmaz, mint például az oldalszámozás, fetch join dinamikus profilozással, inner/outer/full join, direkt szorzatok. Továbbá támogatja a projekciót, aggregációt (max, avg) és csoportosítást, rendezést, allekérdezéseket és SQL funkcióhívásokat.
- A HQL-ben megírt lekérdezések adatbázis-függetlenek, ha az adatbázis támogatja az ennek alapjául szolgáló funkciót.
HQL szintaxisának megértése
Minden Hibernate Query Language a következő elemeket tartalmazhatja:
- osztályok
- összetett függvények
- allekérdezések
A HQL klózok a következők:
- from
- select
- where
- order by
- group by