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

Développement Web en Java Discussion :

Problème relation @ManyToMany


Sujet :

Développement Web en Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 32
    Points : 34
    Points
    34
    Par défaut Problème relation @ManyToMany
    Bonjour à tous,

    Comme dit dans le titre, j'ai une question par rapport à une relation @ManyToMany:

    Côté MySQL
    J'ai 3 Tables : client, manager et estManage

    - 1 client peut avoir plusieurs managers
    - 1 manager peut avoir plusieurs clients
    J'ai donc une table intermédiaire estManage qui contient idClient et idManager.

    Côté J2ee (JSF, JPA, EJB)
    J'ai 2 entités : Client et Manager

    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
    // Entite Client
    ...
    ...
    @ManyToMany(
            cascade={CascadeType.ALL}
    )
    @JoinTable(
    	name="estManage",
    	joinColumns=@JoinColumn(name="idClient"),
    	inverseJoinColumns=@JoinColumn(name="idManager")
    )
    private Collection<Manager> manager_belongsTo;
    ...
    ...
     
    // Entite Manager
    ...
    ...
    @ManyToMany(
    	mappedBy="manager_belongsTo"
    )
    private Collection<Client> clients;
    ...
    ...
    Ce que j'aimerai savoir, c'est comment insérer idClient et idManager dans ma table estManage? Est-ce que je dois le faire à la main? Ou cela est fait automatiquement?

    Lorsque j'insère des données dans mes 2 tables(client et manager), rien n'est inséré dans la table de jointure...

    Merci pour vos réponses!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Bonjour,

    En remplissant ta collection Client.manager_belongsTo puis en sauvegardant ton entité Client, la table de jointure devrait se remplir toute seule.

    Romain.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 32
    Points : 34
    Points
    34
    Par défaut
    Romain,

    Peux-tu être plus explicite?
    Je ne suis pas encore très à l'aise avec les collections...
    Et que veux-tu dire par 'en sauvegardant ton entité Client'?

    Merci!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Pour remplir ta collection :

    Pour renseigner ta Collection ça doit ressembler à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // ces deux lignes là tu dois déjà les avoir écrites je pense
    Client client = new Client();
    Compte compte = new Compte();
     
    // code pour lier un compte à un client
    client.getManager_belongsTo().add(compte);(
    Et que veux-tu dire par 'en sauvegardant ton entité Client'?
    Par sauvegarder j'entends enregistrer le contenu de ta classe en base de données. Il me semble que tu sais déjà faire ça. C'est ce que tu appelles "insérer" :

    Lorsque j'insère des données dans mes 2 tables(client et manager), rien n'est inséré dans la table de jointure...
    Romain.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 32
    Points : 34
    Points
    34
    Par défaut
    Merci Romain!

    Après un peu de recherches et de code, j'ai réussi à faire fonctionner mon
    @ManyToMany.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Probléme Relation ManyToMany
    Par jujurochedu42 dans le forum Symfony
    Réponses: 1
    Dernier message: 14/05/2013, 11h53
  2. Problème relation ManyToMany et inverse side
    Par jekif dans le forum Doctrine2
    Réponses: 3
    Dernier message: 06/04/2012, 09h22
  3. Problème relation ManyTOMany
    Par Adraesh dans le forum Doctrine2
    Réponses: 2
    Dernier message: 01/03/2012, 14h43
  4. [EJB3] Problème de cascade en relation Manytomany
    Par mommsse dans le forum Java EE
    Réponses: 3
    Dernier message: 22/12/2010, 07h57
  5. Problème du count dans une relation ManyToMany
    Par Invité dans le forum Général Java
    Réponses: 0
    Dernier message: 10/05/2010, 12h58

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