Sobes.tech
Junior — Middle
171

Můžete vysvětlit hlavní rozdíly mezi standardním SQL, JPQL a HQL při práci s databázemi v Java?

Společnosti byly požádány
Hftlabs

Odpověď od AI

sobes.tech AI

Hlavní rozdíly mezi SQL, JPQL a HQL spočívají v úrovni abstrakce a oblasti použití:

  • SQL (Structured Query Language) — je standardní jazyk pro dotazy do relačních databází. Pracuje přímo s tabulkami a sloupci databáze. Dotazy závisí na konkrétním systému správy databází a operují s fyzickou strukturou dat.

  • JPQL (Java Persistence Query Language) — je objektově orientovaný jazyk dotazů používaný v JPA (Java Persistence API). Operuje s entitami Java a jejich poli, nikoli s tabulkami a sloupci. JPQL je nezávislý na konkrétní databázi a umožňuje psát dotazy na úrovni obchodního modelu.

  • HQL (Hibernate Query Language) — je jazyk dotazů podobný JPQL, ale specifický pro Hibernate. Také pracuje s objekty a jejich vlastnostmi, nikoli s tabulkami. HQL nabízí rozšíření specifická pro Hibernate.

Příklad dotazu:

SQL:

SELECT * FROM users WHERE age > 30;

JPQL:

SELECT u FROM User u WHERE u.age > 30

HQL je velmi podobný JPQL, ale může obsahovat dodatečné funkce specifické pro Hibernate.

Tímto způsobem umožňují JPQL a HQL pracovat s objektem modelem, zatímco SQL pracuje s fyzickou strukturou databáze.