Sobes.tech
Junior — Middle
175

Можете ли објаснити главне разлике између стандардног SQL, JPQL и HQL при раду са базама података у Јави?

Компаније где су питане
Hftlabs

Одговор од АИ

sobes.tech АИ

Основне разлике између SQL, JPQL и HQL налазе се у нивоу апстракције и области примене:

  • SQL (Structured Query Language) — стандардни језик за упите у релационим базама података. Ради директно са табелама и колонама базе података. Упити зависе од конкретног система за управљање базама података и раде на физичкој структури података.

  • JPQL (Java Persistence Query Language) — објектно-оријентисани језик упита који се користи у JPA (Java Persistence API). Ради са Java ентитетима и њиховим пољима, а не са табелама и колонама. JPQL је независан од конкретне базе података и омогућава писање упита на нивоу пословног модела.

  • HQL (Hibernate Query Language) — језик упита сличан JPQL, али специфичан за Hibernate. Такође ради са објектима и њиховим својствима, а не са табелама. HQL пружа проширења која су специфична за Hibernate.

Пример упита:

SQL:

SELECT * FROM users WHERE age > 30;

JPQL:

SELECT u FROM User u WHERE u.age > 30

HQL је веома сличан JPQL-у, али може садржати додатне могућности специфичне за Hibernate.

На овај начин, JPQL и HQL омогућавају рад са објектним моделом, док SQL ради са физичком структуром базе података.