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 :

Entrées dupliquées sur relation ManytoMany [Mapping]


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 12
    Par défaut Entrées dupliquées sur relation ManytoMany
    Bonjour

    Je suis actuellement en train de réaliser une application avec Struts2, Spring2 et hibernate3, sur une base Oracle. Celle-ci a des objets avec associations en manytomany de la façon suivante :

    A (ID_A, NAME_A)
    B (ID_B, NAME_B)
    A_B (#ID_A, #ID_B)

    J'ai créé mes objets de la manière suivante :

    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
    @Entity
    @Table(name = "A")
    public class A extends AbstractModelObject implements Serializable {
    	@Id
    	@GenericGenerator(name="kaugen" , strategy="increment")
    	@GeneratedValue(generator="kaugen")
    	@Column(name = "ID_A")
    	private int idA;
    	@Column(name = "NAME_A")
    	private int nameA;
    	@ManyToMany(cascade=CascadeType.ALL,
    			fetch=FetchType.LAZY)
    	@JoinTable(name = "A_B",
    		joinColumns = {@JoinColumn(name="ID_A")},
    		inverseJoinColumns = {@JoinColumn(name="ID_B")},
    		uniqueConstraints = {@UniqueConstraint(
    		columnNames = {"ID_A", "ID_B"})}
    	)
    	private List<B> B;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @Entity
    @Table(name = "B")
    public class B extends AbstractModelObject implements Serializable {
    	@Id
    	@GenericGenerator(name="kaugen" , strategy="increment")
    	@GeneratedValue(generator="kaugen")
    	@Column(name = "ID_B")
    	private int idB;
    	@Column(name = "NAME_B")
    	private int nameB;
    	@OneToMany(mappedBy = "B")
    	private List<A> A;
    L'insertion dans les tables A et B, ainsi que leurs insertions fonctionnent très bien. Cependant, au niveau de ma relation A_B, le premier enregistrement fonctionne, mais si je modifie un élément de A ou B et que je l'update, hibernate tente de recréer un tuple dans A_B, alors que ce lien existe déjà. J'ai donc une erreur de clé primaire déjà existante.

    Que puis-je faire ?

    Merci

    @++

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 12
    Par défaut
    RESOLU : désolé, j'aurais dû attendre 30min de plus avant de poster mon message. En fait, dans la liste d'objets (A ou B), j’insérais deux fois le même objet de la classe opposée. J'ai donc corrigé le problème en faisant un test contains() sur mes deux listes avant d'ajouter un élément.

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

Discussions similaires

  1. [2.x] relations entre entités ManyToOne ou ManyToMany
    Par ziemelitis dans le forum Symfony
    Réponses: 5
    Dernier message: 02/01/2012, 18h19
  2. Réponses: 2
    Dernier message: 01/04/2010, 10h13
  3. Requête Criteria sur une relation ManyToMany
    Par waldo2188 dans le forum Hibernate
    Réponses: 0
    Dernier message: 04/11/2009, 11h29
  4. Réponses: 0
    Dernier message: 19/04/2009, 20h50
  5. aide sur relation manytomany
    Par Jacobian dans le forum JPA
    Réponses: 1
    Dernier message: 29/05/2008, 20h11

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