Ugrás a tartalomhoz

Hibernate Query Language

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen Protektroll (vitalap | szerkesztései) 2012. május 18., 22:54-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (Új oldal, tartalma: „=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 objek…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

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