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

Hibernate Java Discussion :

[hibernate] ManyToOne bidirectionnel


Sujet :

Hibernate Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Par défaut [hibernate] ManyToOne bidirectionnel
    Bonjour.
    J'ai un petit soucis de mapping avec les annotations hibernate:

    J'ai un lien A 1<------->n B
    Donc bidirectionnel

    Dans ma classe A j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @OneToMany(mappedBy="a")
    	public List<B> getBs() {
    		return Bs;
    	}
    Et dans B :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @ManyToOne(cascade = CascadeType.ALL, targetEntity= A.class)
    @JoinTable(name = "a_b",
    joinColumns = { @JoinColumn(name = "idB") },
     inverseJoinColumns = { @JoinColumn(name = "idA") })
    	public A getA() {
    		return this.a;
    	}
    Quand je teste ce mapping, je peux sauver les relations de B vers A, elles sont bien dans ma table de lien a_b:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A objetA = new A("objetA");
    B objetB = new B("objetB");
    B.setA(objetA );
    Si je tente de sauver les liens A vers B je n'ai aucune exception mais seul les objets objetA et objetB sont sauvés, les liens n'apparaissent pas dans ma table de jointure a_b

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    A objetA = new A("objetA");
    List<B> listB = new ArrayList<B>();
    B objetB = new B("objetB ");
    listB .add(objetB );
    objetA.setBs(listB );
    Y a-t-il une annotation qui me manque pour indiquer la relation bidirectionnelle?

    Merci pour votre aide.

    Benoit

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Dis moi cette table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @JoinTable(name = "a_b",
    c toi qui l'as crée manuellement ?
    Normalement tu n'as pas besoin de tables intermédiaires dans une relation oneTOMany, et puis de mémoire cette operation ne pourrait être persistante :Il faut plutot que tu fasses une boucle pour persister chaque element de la collection.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/06/2014, 19h02
  2. [2.x] [Symfony2] PB Relation ManyToOne bidirectionnelle
    Par philodido dans le forum Symfony
    Réponses: 6
    Dernier message: 12/06/2013, 19h29
  3. Problème : Relation OneToMany/ManyToOne bidirectionnelle
    Par KrisWall dans le forum Doctrine2
    Réponses: 1
    Dernier message: 09/09/2012, 08h46
  4. Réponses: 10
    Dernier message: 29/10/2008, 09h33
  5. Réponses: 9
    Dernier message: 26/03/2008, 11h13

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