Sobes.tech
Junior — Middle

Java-da verilənlər bazaları ilə işləyərkən standart SQL, JPQL və HQL arasındakı əsas fərqləri izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

SQL, JPQL və HQL arasındakı əsas fərqlər, abstraksiya səviyyəsi və tətbiq sahəsindədir:

  • SQL (Structured Query Language) — əlaqəli verilənlər bazalarına sorğu üçün standart dildir. Birbaşa verilənlər bazasının cədvəlləri və sütunları ilə işləyir. Sorğular konkret verilənlər bazası idarəetmə sistemindən asılıdır və fiziki məlumat strukturunda işləyir.

  • JPQL (Java Persistence Query Language) — obyekt yönümlü sorğu dilidir və JPA (Java Persistence API) daxilində istifadə olunur. Java obyektləri və onların sahələri ilə işləyir, cədvəllər və sütunlar ilə deyil. JPQL, konkret verilənlər bazasından müstəqildir və biznes modeli səviyyəsində sorğular yazmağa imkan verir.

  • HQL (Hibernate Query Language) — JPQL-ə bənzəyən, lakin Hibernate üçün xüsusi olan sorğu dilidir. O, həmçinin obyektlər və onların xüsusiyyətləri ilə işləyir, cədvəllər ilə deyil. HQL, Hibernate-ə xüsusi genişləndirmələr təklif edir.

Sorğu nümunəsi:

SQL:

SELECT * FROM users WHERE age > 30;

JPQL:

SELECT u FROM User u WHERE u.age > 30

HQL çox bənzəyir JPQL-ə, lakin əlavə Hibernate-ə xas funksiyalar da daxil edə bilər.

Bu şəkildə, JPQL və HQL obyekt model ilə işləməyə imkan verir, SQL isə fiziki verilənlər bazası strukturuyla işləyir.