Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Travail avec ORM : JPA et Hibernate | Travail avec les Bases de Données
Spring Boot Backend

bookTravail avec ORM : JPA et Hibernate

Comme vous le savez déjà, l’Object-Relational Mapping (ORM) est une technologie qui permet aux développeurs d’interagir avec une base de données au niveau des objets plutôt qu’au moyen de requêtes SQL.

En substance, l’ORM est un concept qui permet à un objet Java d’être représenté comme des données dans une base de données (et inversement). Il est implémenté sous la forme de la spécification Java Persistence API (JPA).

JPA

Exemple concret

Imaginez que JPA soit une norme pour les prises électriques dans différents pays. Cette norme définit à quoi doit ressembler une prise et quelles spécifications elle doit respecter afin que les appareils puissent y être branchés.

Cependant, la norme elle-même ne fabrique pas les prises. Pour les utiliser réellement, il faut des fabricants qui mettent en œuvre cette norme. Ils créent les prises réelles qui sont conformes à cette norme.

Composants principaux de JPA

Composants JPA désignent les éléments clés qui collaborent pour fournir la fonctionnalité nécessaire à l’interaction avec une base de données.

Nous allons explorer ces composants à travers des exemples concrets afin de mieux les associer pour une utilisation future.

Entité

Rappel sur la notion d’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 les données liées à l’utilisateur que nous stockons.

Imaginez cela comme une carte de visite. La carte contient le nom, le 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, l’EntityManager effectue des opérations telles que l’ajout, la mise à jour ou la suppression d’enregistrements, en gérant l’ensemble de ces actions.

L’EntityManager est chargé de gérer le cycle de vie des entités (objets) et leur interaction avec la base de données.

Méthodes principales

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 l'EntityManager. Toutes les modifications sont suivies automatiquement ;
  • Détachée : L'entité était précédemment gérée, mais le contexte de persistance a été fermé ou l'EntityManager a été nettoyé. Les modifications dans cet état ne sont pas suivies automatiquement ;
  • Supprimée : L'entité a été marquée pour suppression de la base de données.

Lorsque l'EntityManager crée ou trouve une entité, il place cette entité dans le contexte de persistance.

Toutes les modifications apportées à l'entité gérée sont automatiquement suivies, et à la fin de la transaction, ces modifications sont synchronisées avec la base de données.

JPQL (Java Persistence Query Language)

En JPQL, les requêtes sont rédigées pour rechercher ou modifier des données dans la base de données en utilisant une approche orientée objet.

SELECT c from Category c WHERE c.title = 'query'

En JPQL, nous ne manipulons pas directement les noms de tables et de colonnes. À la place, nous référençons la classe Category et son champ title, ce qui rend la requête plus compréhensible pour les développeurs Java. JPQL masque la structure sous-jacente de la base de données, permettant de se concentrer sur le modèle orienté objet.

Hibernate

Par exemple, Hibernate peut générer et mettre à jour automatiquement les tables de la base de données à partir de vos entités (classes).

Hibernate intègre des mécanismes de mise en cache permettant de stocker en mémoire les données fréquemment utilisées, ce qui réduit le nombre de requêtes vers la base de données et accélère les performances de l'application.

1. Qu'est-ce que JPA ?

2. Quelle interface de JPA est utilisée pour effectuer des opérations sur les entités ?

question mark

Qu'est-ce que JPA ?

Select the correct answer

question mark

Quelle interface de JPA est utilisée pour effectuer des opérations sur les entités ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

What are the main differences between JPA and Hibernate?

Can you explain more about how the EntityManager works?

How does JPQL differ from regular SQL?

Awesome!

Completion rate improved to 3.45

bookTravail avec ORM : JPA et Hibernate

Glissez pour afficher le menu

Comme vous le savez déjà, l’Object-Relational Mapping (ORM) est une technologie qui permet aux développeurs d’interagir avec une base de données au niveau des objets plutôt qu’au moyen de requêtes SQL.

En substance, l’ORM est un concept qui permet à un objet Java d’être représenté comme des données dans une base de données (et inversement). Il est implémenté sous la forme de la spécification Java Persistence API (JPA).

JPA

Exemple concret

Imaginez que JPA soit une norme pour les prises électriques dans différents pays. Cette norme définit à quoi doit ressembler une prise et quelles spécifications elle doit respecter afin que les appareils puissent y être branchés.

Cependant, la norme elle-même ne fabrique pas les prises. Pour les utiliser réellement, il faut des fabricants qui mettent en œuvre cette norme. Ils créent les prises réelles qui sont conformes à cette norme.

Composants principaux de JPA

Composants JPA désignent les éléments clés qui collaborent pour fournir la fonctionnalité nécessaire à l’interaction avec une base de données.

Nous allons explorer ces composants à travers des exemples concrets afin de mieux les associer pour une utilisation future.

Entité

Rappel sur la notion d’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 les données liées à l’utilisateur que nous stockons.

Imaginez cela comme une carte de visite. La carte contient le nom, le 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, l’EntityManager effectue des opérations telles que l’ajout, la mise à jour ou la suppression d’enregistrements, en gérant l’ensemble de ces actions.

L’EntityManager est chargé de gérer le cycle de vie des entités (objets) et leur interaction avec la base de données.

Méthodes principales

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 l'EntityManager. Toutes les modifications sont suivies automatiquement ;
  • Détachée : L'entité était précédemment gérée, mais le contexte de persistance a été fermé ou l'EntityManager a été nettoyé. Les modifications dans cet état ne sont pas suivies automatiquement ;
  • Supprimée : L'entité a été marquée pour suppression de la base de données.

Lorsque l'EntityManager crée ou trouve une entité, il place cette entité dans le contexte de persistance.

Toutes les modifications apportées à l'entité gérée sont automatiquement suivies, et à la fin de la transaction, ces modifications sont synchronisées avec la base de données.

JPQL (Java Persistence Query Language)

En JPQL, les requêtes sont rédigées pour rechercher ou modifier des données dans la base de données en utilisant une approche orientée objet.

SELECT c from Category c WHERE c.title = 'query'

En JPQL, nous ne manipulons pas directement les noms de tables et de colonnes. À la place, nous référençons la classe Category et son champ title, ce qui rend la requête plus compréhensible pour les développeurs Java. JPQL masque la structure sous-jacente de la base de données, permettant de se concentrer sur le modèle orienté objet.

Hibernate

Par exemple, Hibernate peut générer et mettre à jour automatiquement les tables de la base de données à partir de vos entités (classes).

Hibernate intègre des mécanismes de mise en cache permettant de stocker en mémoire les données fréquemment utilisées, ce qui réduit le nombre de requêtes vers la base de données et accélère les performances de l'application.

1. Qu'est-ce que JPA ?

2. Quelle interface de JPA est utilisée pour effectuer des opérations sur les entités ?

question mark

Qu'est-ce que JPA ?

Select the correct answer

question mark

Quelle interface de JPA est utilisée pour effectuer des opérations sur les entités ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 4
some-alt