Sobes.tech
Junior — Middle
165

Puteți explica principalele diferențe dintre SQL standard, JPQL și HQL atunci când lucrați cu baze de date în Java?

Companiile au fost întrebate
Hftlabs

Răspuns de la AI

sobes.tech AI

Principalele diferențe dintre SQL, JPQL și HQL constau în nivelul de abstracție și domeniul de aplicare:

  • SQL (Structured Query Language) — este limbajul standard pentru interogări în bazele de date relaționale. Lucrează direct cu tabelele și coloanele bazei de date. Interogările depind de sistemul de gestionare a bazei de date specific și operează pe structura fizică a datelor.

  • JPQL (Java Persistence Query Language) — este un limbaj de interogare orientat pe obiecte, utilizat în JPA (Java Persistence API). Operați cu entități Java și câmpurile lor, nu cu tabele și coloane. JPQL este independent de baza de date specifică și permite scrierea de interogări la nivelul modelului de afaceri.

  • HQL (Hibernate Query Language) — este un limbaj de interogare similar cu JPQL, dar specific Hibernate. De asemenea, lucrează cu obiecte și proprietățile lor, nu cu tabele. HQL oferă extensii specifice Hibernate.

Exemplu de interogare:

SQL:

SELECT * FROM users WHERE age > 30;

JPQL:

SELECT u FROM User u WHERE u.age > 30

HQL este foarte similar cu JPQL, dar poate conține funcționalități suplimentare specifice Hibernate.

Astfel, JPQL și HQL permit lucrul cu modelul de obiecte, în timp ce SQL lucrează cu structura fizică a bazei de date.