Contenu du cours
Backend Spring Boot
Backend Spring Boot
Travailler avec ORM : JPA et Hibernate
Comme vous le savez déjà, le Mapping Objet-Relationnel (ORM) est une technologie qui permet aux développeurs d'interagir avec une base de données au niveau des objets plutôt qu'à travers des requêtes SQL.
En essence, ORM est un concept qui permet à un objet Java d'être représenté comme des données dans une base de données (et vice versa). Il est implémenté sous la forme de la spécification de l'API de Persistance Java (JPA).
JPA
Exemple de la vie réelle
Imaginez que JPA est comme une norme pour les prises électriques dans différents pays. Cette norme définit à quoi une prise doit ressembler et quelles spécifications elle doit suivre pour que les appareils puissent y être branchés.
Cependant, la norme elle-même ne fabrique pas les prises. Pour les utiliser réellement, vous avez besoin de fabricants qui mettent en œuvre cette norme. Ils créent les prises réelles qui s'y conforment.
Principaux composants de la JPA
Les composants JPA sont des éléments clés qui travaillent ensemble pour fournir des fonctionnalités d'interaction avec une base de données.
Nous explorerons ces composants à travers des exemples réels pour vous aider à mieux les associer pour une utilisation future.
Entité
Rappelons ce qu'est une entité. Une entité est une classe dans votre code qui représente une table dans la base de données. Par exemple, la classe User
décrit quelles données liées à l'utilisateur nous stockons.
Imaginez-le comme une carte de visite. La carte contient le nom, le titre du poste et les coordonnées d'une personne. En JPA, une classe d'entité décrit toutes les caractéristiques importantes d'un objet, tout comme une carte de visite décrit une personne.
EntityManager
Dans JPA, le EntityManager
effectue des opérations telles que l'ajout, la mise à jour ou la suppression de dossiers, gérant toutes ces actions.
EntityManager
est responsable de la gestion du cycle de vie des entités (objets) et de leur interaction avec la base de données.
Principales méthodes
Voici comment utiliser EntityManager dans Spring Boot
Contexte de Persistance
Cycle de vie des entités
- Transitoire : L'entité vient d'être créée mais n'a pas encore été enregistrée dans la base de données ;
- Gérée : L'entité a été enregistrée dans la base de données et est gérée par le
EntityManager
. Tous les changements sont automatiquement suivis ; - Détachée : L'entité était précédemment gérée, mais le contexte de persistance a été fermé ou le
EntityManager
a été effacé. Les changements dans cet état ne sont pas suivis automatiquement ; - Supprimée : L'entité a été marquée pour suppression de la base de données.
Lorsque le EntityManager
crée ou trouve une entité, il place cette entité dans le contexte de persistance.
Tous les changements apportés à l'entité gérée sont automatiquement suivis, et à la fin de la transaction, ces changements sont synchronisés avec la base de données.
JPQL (Java Persistence Query Language)
Dans JPQL, vous écrivez des requêtes pour trouver ou modifier des données dans la base de données en utilisant un style orienté objet.
Dans JPQL, nous ne traitons pas directement avec les noms de table et de colonne. Au lieu de cela, nous référençons la classe Category
et son champ title
, rendant la requête plus facile à comprendre pour les développeurs Java. JPQL abstrait la structure sous-jacente de la base de données, vous permettant de vous concentrer sur le modèle orienté objet.
Hibernate
Par exemple, Hibernate
peut automatiquement générer et mettre à jour les tables de la base de données en fonction de vos entités (classes).
Hibernate intègre des mécanismes de mise en cache qui permettent aux données fréquemment utilisées d'être stockées en mémoire, réduisant ainsi le nombre de requêtes à la base de données et accélérant les performances de l'application.
1. Qu'est-ce que JPA ?
2. Quelle interface dans JPA est utilisée pour effectuer des opérations sur les entités ?
Merci pour vos commentaires !