Sobes.tech
Junior — Middle
167

Puoi spiegare le principali differenze tra SQL standard, JPQL e HQL quando si lavora con i database in Java?

Le aziende dove è stato chiesto
Hftlabs

Risposta dell'AI

sobes.tech AI

Le principali differenze tra SQL, JPQL e HQL risiedono nel livello di astrazione e nell'ambito di applicazione:

  • SQL (Structured Query Language) — è il linguaggio standard per le query sui database relazionali. Opera direttamente con tabelle e colonne del database. Le query dipendono dal sistema di gestione del database specifico e operano sulla struttura fisica dei dati.

  • JPQL (Java Persistence Query Language) — è un linguaggio di query orientato agli oggetti, usato in JPA (Java Persistence API). Opera con entità Java e i loro campi, non con tabelle e colonne. JPQL è indipendente dal database specifico e permette di scrivere query a livello del modello di business.

  • HQL (Hibernate Query Language) — è un linguaggio di query simile a JPQL, ma specifico di Hibernate. Opera anch'esso con oggetti e loro proprietà, non con tabelle. HQL offre estensioni specifiche di Hibernate.

Esempio di query:

SQL:

SELECT * FROM users WHERE age > 30;

JPQL:

SELECT u FROM User u WHERE u.age > 30

HQL è molto simile a JPQL, ma può contenere funzionalità aggiuntive specifiche di Hibernate.

In questo modo, JPQL e HQL consentono di lavorare con il modello a oggetti, mentre SQL lavora con la struttura fisica del database.