Article faisant partie d’une série présentant les différentes annotations permettant de traduire des relations entre classes persistantes en bases de données relationnelles.
Dans le cas précédent nous ne pouvions pas aller directement de G vers F.
Nous allons maintenant définir deux classes H et J avec une relation OneToMany bidirectionnelle.
Diagramme de classes
Code java
La classe H
Par rapport à l’exemple précédent, nous spécifions que la relation va être mappée sur classeH, attribut qui va être ajouté dans la classe I et qui nous permettra d’aller de I vers H.
La classe I
Nous avons défini un nouvel attribut que nous avons annoté @ManyToOne et nous spécifions le nom du champ clé étrangère dans la table correspondante.
Tables correspondantes
Table H :
Table I :
Et voici le script SQL permettant de générer les tables :
Script de la table H :
Script de la table I :
Nous pouvons remarquer, comme pour les relations OneToOne, que le fait qu’une relation entre 2 classes soit uni ou bidirectionnelle, cela n’a pas d’incidence sur la structure de la base de données.
Nous venons de voir quelles annotations utiliser pour définir une relation OneToMany. Attention : selon le choix de vos annotations, JPA peut vous générer une table de relation supplémentaire ajoutant une jointure alors que c’est inutile dans les relations de 1 à n en bases de données.
Vous trouverez un exemple concret d’une relation OneToMany dans l’article Relation1,* avec JPA : Exemple d’une commande et ces lignes de commandes
Crée par: chris
Créé le: 19 septembre 2015
Modifié le: 19 septembre 2015
Nombre de visites: 3271
Popularité: 13 %
Popularité absolue: 2
2003-2024 LePpf
Plan du site
| Se connecter |
RSS 2.0 |
Sur YouTube
Visiteurs connectés : 0
Nombre moyen de visites quotidiennes sur le site: 215