JPA : Exemples de mapping


Relation1,* avec JPA : Exemple d’une commande et ces lignes de commandes

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.


 Relation 1 à plusieurs bidirectionnelle

Voyons maintenant comment faire si nous voulions avoir une relation bidirectionnelle.

Nous allons modifier la classe commande comme suit :

  1. @OneToMany( mappedBy = "commande" )
  2.  private List< LigneCde > ligneCdes;

Télécharger

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.

  1. @ManyToOne
  2. @JoinColumn( name = "CDE_ID_FK", referencedColumnName = "CDE_ID" )
  3. private Commande commande;

Télécharger

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.

 Conclusion

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.

Article n° 36

Crée par: chris

Créé le: 7 juillet 2015

Modifié le: 18 septembre 2015

Nombre de visites: 3163

Popularité: 58 %

Popularité absolue: 5

Mots clés de cet article


SPIP

2003-2024 LePpf
Plan du site | | RSS 2.0 | Sur YouTube

Visiteurs connectés : 0

Nombre moyen de visites quotidiennes sur le site: 208