Hibernate — Implémentation de JPA
Hibernate est une implémentation très populaire de JPA (Java Persistence API), utilisée pour gérer la persistance des données en Java.
1. Idée simple
JPA = spécification (API) Hibernate = implémentation concrète
➡️ JPA définit comment faire ➡️ Hibernate fait le travail réel
2. Exemple simple
@Entity
class User {
@Id
private Long id;
private String name;
}
Ici :
- annotations JPA
- Hibernate va les interpréter pour générer le SQL
3. Rôle de Hibernate
Hibernate gère :
- mapping objet ↔ table
- génération de requêtes SQL
- gestion des transactions
- cache
4. JPA vs Hibernate
| JPA | Hibernate | |
|---|---|---|
| type | spécification | implémentation |
| code | standard | spécifique |
| portabilité | ✔️ | ❌ dépend de Hibernate |
5. Exemple d’utilisation
EntityManager em = entityManagerFactory.createEntityManager();
em.getTransaction().begin();
User user = new User();
user.setName("Ali");
em.persist(user);
em.getTransaction().commit();
API JPA exécutée par Hibernate
⚡ 6. Fonctionnalités clés Hibernate
- ORM (Object Relational Mapping)
- Lazy loading
- Cache (1er niveau, 2e niveau)
- HQL (Hibernate Query Language)
7. Pièges fréquents
- confondre JPA et Hibernate
- utiliser du code spécifique Hibernate
- problème de LazyInitializationException
8. Pourquoi utiliser JPA + Hibernate ?
- abstraction de la base de données
- réduction du SQL manuel
- code plus propre
9. Questions classiques
Q1
Hibernate = ? implémentation de JPA
Q2
JPA = ? spécification
Q3
qui exécute le SQL ? Hibernate
10. À retenir
- JPA = interface standard
- Hibernate = implémentation concrète
- utiliser JPA pour rester portable
🧾 En résumé
- JPA définit les règles
- Hibernate les applique
- ensemble = persistance efficace
Hibernate est l’outil le plus utilisé pour implémenter JPA en Java.