Hibernate:Relation plusieurs-à-plusieurs bidirectionnelle
De WIKI.minetti.org
Révision de 7 avril 2016 à 17:12 par Jp (discussion | contributions) (Page créée avec « == But == Lier deux objets '''A''' et '''B''': * L'objet '''A''' contient une liste d'objets '''B'''; * L'objet '''B''' contient une liste d'objets '''A'''; Au niveau de... »)
Sommaire
But
Lier deux objets A et B:
- L'objet A contient une liste d'objets B;
- L'objet B contient une liste d'objets A;
Au niveau de la base de données on va avoir une table de jointure qui va faire le lien entre la table de l'objet A et celle de l'objet B.
Diagramme de classe
Tables
TODO
Annotations
Relation de la classe A:
@ManyToMany @JoinTable(name = "JOINTURE_AB", joinColumns = @JoinColumn(name = "A_ID"), inverseJoinColumns = @JoinColumn(name = "B_ID")) @ForeignKey(name = "FK_JOINTURE_AB_A") @Cascade({ CascadeType.MERGE, CascadeType.PERSIST }) private Set<B> relationB = new HashSet<>();
Relation de la classe B:
@ManyToMany(mappedBy = "relationB") @ForeignKey(name = "FK_JOINTURE_AB_B") @Cascade( { CascadeType.MERGE, CascadeType.PERSIST }) private Set<A> relationA = new HashSet<>();