Sobes.tech
Junior — Middle
179

Pouvez-vous expliquer les principales différences entre SQL standard, JPQL et HQL lors de la manipulation de bases de données en Java?

Entreprises à qui on a demandé
Hftlabs

Réponse de l'IA

sobes.tech IA

Les principales différences entre SQL, JPQL et HQL résident dans le niveau d'abstraction et le domaine d'application :

  • SQL (Structured Query Language) — est le langage standard pour interroger les bases de données relationnelles. Il travaille directement avec les tables et les colonnes de la base de données. Les requêtes dépendent du SGBD spécifique et opèrent sur la structure physique des données.

  • JPQL (Java Persistence Query Language) — est un langage de requête orienté objet, utilisé dans JPA (Java Persistence API). Il opère avec des entités Java et leurs champs, pas avec des tables et des colonnes. JPQL est indépendant de la base de données spécifique et permet d'écrire des requêtes au niveau du modèle métier.

  • HQL (Hibernate Query Language) — est un langage de requête similaire à JPQL, mais spécifique à Hibernate. Il travaille également avec des objets et leurs propriétés, pas avec des tables. HQL offre des extensions spécifiques à Hibernate.

Exemple de requête :

SQL:

SELECT * FROM users WHERE age > 30;

JPQL:

SELECT u FROM User u WHERE u.age > 30

HQL est très similaire à JPQL, mais peut contenir des fonctionnalités supplémentaires spécifiques à Hibernate.

Ainsi, JPQL et HQL permettent de travailler avec le modèle d'objet, tandis que SQL travaille avec la structure physique de la base de données.