0% ont trouvé ce document utile (0 vote)
56 vues31 pages

Fonctions avancées Spring Data JPA

Transféré par

yosri.hamrouni
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
56 vues31 pages

Fonctions avancées Spring Data JPA

Transféré par

yosri.hamrouni
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

SPRING DATA JPA – Fonctions avancées

Affectation

UP ASI
Bureau E204

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 1
Plan du Cours

– Règles de base
– Exemples pratiques
• One To One
• One To Many / Many To One
• Many To Many

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 2
Règles de base

• Pour réaliser les affectations d’une entité à une autre, il faut adopter une certaine
démarche :

- S’il s’agit d’une relation bidirectionnelle, il faut distinguer le parent du child


- Si la relation est unidirectionnelle, l’affectation se fera du coté de l’entité qui
a accès aux attributs de l’autre (Le sens du flèche)
- Les opérations d’affectation (setter) se réalise exclusivement sur l’entité
parent.
- Si vous faites l’affectation sur le child (fils), vous n’aurez pas d’erreur coté
code mais aucune modification ne se réalisera coté base de données

• L’affectation est différente selon le type d’association (OneToOne, ManyToOne,


OneToMany, ManyToMany) comme illustré dans les diapos suivants

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 3
One To One
Dans cet exemple, nous souhaitons ajouter l’équipe, son détail et affecter ce
DetailEquipe à l’Equipe associée en utilisant les cascades

Il suffira donc par la suite de sauvegarder un objet Equipe et ses différents


attributs primitifs (nomEquipe,niveau) et objet (DetailEquipe)

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 4
One To One
Parent Child

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 5
One To One
Ajout Equipe et Affectation à DetailEquipe

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 6
One To One
Ajout Equipe et Affectation à DetailEquipe

En utilisant la cascade entre Equipe et DetailEquipe, l’objet Equipe envoyé doit


contenir le détail équipe associé. A l’exécution, nous aurons une ligne dans la
table equipe, une ligne dans la table detailEquipe et la clé étrangère du
detailEquipe dans l’équipe mise à jour.

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 7
One To One
Ajout Equipe et Affectation à DetailEquipe

Avant l’exécution de la méthode, les tables équipe et DetailEquipe sont vides

Ces lignes seront présentes dans la base de données après l’exécution

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 8
One To One
Affectation DetailEquipe à Equipe

Dans cet exemple, nous souhaitons enregistrer le DetailEquipe et l’affecter à


l’Equipe associée déjà existante dans la base.
Equipe est le parent donc l’affectation se fera sur l’objet Equipe

Parent Child

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 9
One To One
Affectation DetailEquipe à Equipe

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 10
One To One
Affectation DetailEquipe à Equipe

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 11
One To One
Affectation DetailEquipe à Equipe

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 12
One To One
Affectation DetailEquipe à Equipe

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 13
One To One
Affectation DetailEquipe à Equipe

Cette ligne est déjà présente dans la base de données

Ces lignes seront présentes dans la base de données après l’exécution

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 14
One To Many
Dans cet exemple, nous souhaitons ajouter un étudiant avec les contrats associés

Il suffira donc par la suite de sauvegarder un objet Etudiant contenant une liste de
contrats et affecter les étudiants (child) aux contrats (Parent).

Parent Child

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 15
One To Many
Ajout Etudiant avec les contrats associés

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 16
One To Many
Ajout Etudiant avec les contrats associés

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 17
One To Many
Ajout Etudiant avec les contrats associés

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 18
One To Many
Ajout Etudiant avec les contrats associés

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 19
One To Many
Ajout Etudiant avec les contrats associés

Avant l’exécution, la base de données est vide

Après l’exécution, nous avons une ligne Etudiant dans la table Etudiant , deux
lignes contrats et le champs etudiantId mis à jour avec l’id de l ’étudiant ajouté

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 20
One To Many
Dans cet exemple, nous souhaitons affecter un departement à l’Etudiant associé

déjà présent dans la base de données

La cardinalité la plus forte est du coté de l’étudiant donc l’étudiant est le parent

L’affectation se fera sur l’objet Etudiant

Child Parent

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 21
One To Many
Child Parent

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 22
One To Many
Affectation Département à Etudiant

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 23
One To Many
Affectation Département à Etudiant

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 24
One To Many
Affectation Département à Etudiant

Ces lignes sont déjà présentes dans la base de données

La ligne étudiant sera modifiée après l’exécution avec le département


affecté à l’étudiant concerné

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 25
Many To Many
Dans cet exemple, nous souhaitons affecter une équipe à un Etudiant
L’étudiant et l’équipe sont déjà sauvegardés dans la base de données

La cardinalité est la même des deux cotés de la relation donc c’est à nous de
choisir le parent selon le besoin métier (ca sera Etudiant le parent dans ce cas)

L’affectation se fera sur l’objet Etudiant


Child Parent

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 26
Many To Many
Affectation Equipe à Etudiant
Parent
Child

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 27
Many To Many
Affectation Equipe à Etudiant

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 28
Many To Many
Affectation Equipe à Etudiant

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 29
Many To Many
Ces lignes sont déjà présentes dans la base de données

Cette ligne sera présente dans la base de données après l’exécution


avec l’équipe affecté à l’étudiant concerné dans la table d’association
etudiant_equipes

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 30
SPRING DATA JPA – Fonctions avancées
Affectation

Si vous avez des questions, n’hésitez pas à nous


contacter :

Département Informatique
UP Architectures des Systèmes d'Information
Bureau E204

© 2024-2025 – ESPRIT – Module Architecture des SI II Spring – Spring Data JPA – fonctions avancées Affectations 31

Vous aimerez peut-être aussi