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 :

Doublons insérés dans ma BDD avec CascadeType.all


Sujet :

Hibernate Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut Doublons insérés dans ma BDD avec CascadeType.all
    Bonjour,

    J'ai un problème d'insertion avec hibernate. J'ai une entité parent et une entité enfant. Lorsque j'essaie d'ajouter des parents en BDD, j'ai mis l'annotation CascadeType.All sur la collection des enfants qu'il contient afin d'ajouter ceux ci dans leur table respective. Les parents et les enfants sont bien ajoutés mais je me retrouve avec beaucoup de doublons dans la table des enfants.... J'ai par exemple 15 entrées de Etienne Dumont alors que je ne voudrais en avoir q'une.

    Entite Parent
    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
    25
     
    @Entity
    @SequenceGenerator(name="PARENT_SEQ", sequenceName="SEQ_PARENT")
    @Table(name="PARENT")
    public class Parent extends BusinessObject 
    {
    	@Id
    	@GeneratedValue(strategy=GenerationType.SEQUENCE,  
             generator="PARENT_SEQ")
     
    	@Column(name="ID_PARENT")
     
    	private long uid;
     
    	@Column(name="DESCRIPTION")
    	private String description;
     
    	@Column(name="NO_CLIENT")
    	private String numeroClient;
     
    	//association
    	@ManyToOne(cascade=CascadeType.ALL)
    	@JoinColumn(name="ID_ENFANT")
    	private Enfant enfant;
    }
    Entité enfant
    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
    25
    26
    27
    28
     
    @Entity
    @SequenceGenerator(name="ENFANT_SEQ", sequenceName="SEQ_ENFANT")
    @Table(name = "ENFANT")
    public class ENFANT extends BusinessObject {
     
    	@Id
    	@GeneratedValue(strategy=GenerationType.SEQUENCE, 
             generator="ENFANT_SEQ")
    	@Column(name = "ID_ENFANT")
    	/**
             * identifiant technique unique
             */
    	private long uid;
     
     
    	@Column(name = "NOM")
    	private String nom;
     
    	@Column(name = "PRENOM")
    	private String prenom;
     
    	@Column(name = "NO")
    	private String numero;
     
    	@OneToMany(mappedBy="enfant",fetch=FetchType.LAZY)
    	private Set<Parent> parents;
    }
    Code de l'insertion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    (while ) // Boucle sur tous les parents
    {
         parent = new Parent();
         Enfant enfant = new Enfant();
         enfant.setNumero(...);
         enfant .setNom(...);
         enfant .setPrenom(...);
         parent.Setenfant(enfant);
     
         // Ajoute le parent et les enfants en BDD
        this.updateRef(parent);
    Comment faire pour éviter que l'ajout des enfants crée des doublons ??

  2. #2
    Membre éclairé Avatar de clubist
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 217
    Par défaut
    Bonjour,

    vous veuillez nous donner plus de détails sur la méthode updateRef(parent) (implémentation)

Discussions similaires

  1. [AJAX] Vérifier des données dans une BDD avec AJAX
    Par mwech dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/10/2008, 15h13
  2. [MySQL] données non insérées dans la BDD (champ vide)
    Par Selkurs dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/05/2008, 22h54
  3. Réponses: 6
    Dernier message: 22/05/2008, 08h25
  4. FCKeditor : les accents ne sont pas insérés dans la bdd
    Par Nasky dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 13/07/2007, 14h51
  5. Réponses: 4
    Dernier message: 23/07/2006, 20h42

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