IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

Relation many to many


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Par défaut Relation many to many
    Bonjour!

    J'ai deux entity mappé en manytomany:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     
    public class EntityA implements Serializable {
     
     
    	@Id
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	private int a_id;
    	@ManyToMany(mappedBy="a")
    	protected Set<EntityB> b;
    ...
    }
     
    public class EntityB implements Serializable {
     
     
    	@Id
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	private int b_id;
    @ManyToMany
    	@JoinTable(name="b-a",
    			joinColumns=@JoinColumn(name="ci_b_id",referencedColumnName="b_id"),
    			inverseJoinColumns= @JoinColumn(name="ci_a_id", referencedColumnName="a_id"))
    			protected Set<EntityA> a;

    Et en bd j'ai donc trois tables: celle de EntityA, de EntityB et b-a.

    Apres je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Set<EntityB> liste=new HashSet<EntityB>();
     
    EntityB imaginarium = new EntityB(...);
    liste.add(imaginarium);
     
    EntityA a = new EntityA(liste, ...); // liste permet de remplir le Set<EntityB> b
    entityManager.persist(a);
    Cela me cree bien dans les tables des entités les ajout, mais par contre la table b-a reste vide...
    Comment puis-je la remplir automatiquement?

    Merci de votre aide!

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par défaut
    Pour que les creation/suppression/maj soient faites en cascade, il faut mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @ManyToMany(cascade=CascadeType.ALL)
    (il me semble que par défaut il n'y a pas d'opération en cascade sur les one to many et les many to many).

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Par défaut
    En fait j'avais inversé, c'etait b qui pilotait et non a. Le persist était a faire sur b.

    J'ai un autre souci, c'est que si je fais plsuieurs fois entityManager.persist(b);, cela me rajoute autan de ligne identique dans les tables concernés. Comment puis-je faire pour qu'il ne me rajoute pas de doublon?

Discussions similaires

  1. PGSQL-EclipseLink Relation One To Many et Many To One
    Par faitor1 dans le forum Persistance des données
    Réponses: 0
    Dernier message: 30/01/2015, 19h46
  2. Un peu de mal a comprendre le concepte "one-to-many" et "many-to-many"
    Par chriscoolletoubibe dans le forum Hibernate
    Réponses: 4
    Dernier message: 29/03/2007, 18h50
  3. [hibernate] relation one-to-many avec plusieurs clés
    Par seb_fou dans le forum Hibernate
    Réponses: 6
    Dernier message: 16/03/2006, 14h47
  4. [hibernate]relation many-to-many
    Par quilo dans le forum Hibernate
    Réponses: 5
    Dernier message: 20/12/2005, 10h07
  5. [EJB2.1 Entity] [CMR] Relation One to Many
    Par hamed dans le forum Java EE
    Réponses: 2
    Dernier message: 31/12/2003, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo