Montre comment traduire une relation 1,n avec JPA
Même dans des relations simples de types 1,n, JPA nous propose un certain nombre d’annotations qui produiront des mapping différent. Il peut être intéressant de les connaître et de voir ce que cela donne du coté bases de données.
Voyons maintenant comment faire si nous voulions avoir une relation bidirectionnelle.
Nous allons modifier la classe commande comme suit :
Nous ne précisons plus le nom du champ correspondant car nous le ferons dans l’autre classe. A la place ajoutons mappedBy pour indiquer que la correspondance se fera avec l’attribut nommé commande dans la classe LigneCde.
Il nous faut maintenant ajouter cet attribut dans l’autre classe pour définir le lien de la ligne de commande vers la commande.
Nous ajoutons l’annotation @JoinColumn pour spécifier le nom du champ qui contiendra la clé étrangère dans la table des lignes de commande et le second paramètre indique le nom du champ clé primaire dans la table des commandes.
Exécutons la création de la base.
Nous constatons que nous avons nos 2 tables avec le champ clé étrangère dans la table des lignes de commandes.
La structure de la base de données n’a pas changé mais en Java nous disposons maintenant d’un attribut commande dans notre classe LigneCde nous permettant d’accéder directement à la commande concernée par la ligne.
Nous avons vu comment utiliser les annotations fournies par JPA pour mapper correctement des objets sur une base de données relationnelle dans le cas de relation 1 à plusieurs et comment procéder pour réaliser une relation bidirectionnelle OneToMany dans un sens et ManyToOne dans l’autre.
Crée par: chris
Créé le: 7 juillet 2015
Modifié le: 18 septembre 2015
Nombre de visites: 3163
Popularité: 58 %
Popularité absolue: 5
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: 208