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 :

Remove OneToMany / ManyToOne [Hibernate2]


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 81
    Par défaut Remove OneToMany / ManyToOne
    Bonjour,

    J'ai deux entités :

    Users :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @OneToMany(mappedBy = "users", cascade = CascadeType.ALL, orphanRemoval = true)
    private List<Authorities> authoritiesList;
    Authorities :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @JoinColumn(name = "username", referencedColumnName = "username", insertable = false, updatable = false)
    @ManyToOne
    private Users users;
    DAO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     getEM().getTransaction().begin();
     getEM().remove(pUser);
     getEM().getTransaction().commit();
    Message d'erreur :

    Cannot delete or update a parent row: a foreign key constraint fails (`*****`.`authorities`, CONSTRAINT `****` FOREIGN KEY (`username`) REFERENCES `users` (`username`))

    Je ne trouve pas la solution j'ai bien essayer de supprimer les authorities de l'utilisateur avant, de mettre à null l'user sur les authorities...

    Merci de votre aide

  2. #2
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    salut,
    tu dois d´abord supprimer toutes les references a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<Authorities> authoritiesList
    avant de pouvoir supprimer pUsers.

    Eric

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 81
    Par défaut Merci
    Voici la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (pUser.getAuthoritiesList() != null) {
                getEM().getTransaction().begin();
                List<Authorities> authoritieses = pUser.getAuthoritiesList();
                for (Authorities a : authoritieses) {
                    a.setUsers(null);
                    getEM().remove(a);
                }
                pUser.getAuthoritiesList().clear();
                pUser = getEM().merge(pUser);
                getEM().getTransaction().commit();
    }

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

Discussions similaires

  1. HIbernate OneToMany / ManyToOne CRUD Object
    Par chacalpuant1987 dans le forum Développement Web en Java
    Réponses: 28
    Dernier message: 13/03/2014, 11h07
  2. Problème : Relation OneToMany/ManyToOne bidirectionnelle
    Par KrisWall dans le forum Doctrine2
    Réponses: 1
    Dernier message: 09/09/2012, 08h46
  3. OneToMany ManyToOne - Pere/fils - Suppression du Set
    Par RhumRom dans le forum Hibernate
    Réponses: 4
    Dernier message: 03/08/2010, 20h04
  4. Problème suppression @OneToMany< -> @ManyToOne
    Par Invité dans le forum Persistance des données
    Réponses: 0
    Dernier message: 30/06/2010, 23h18
  5. Réponses: 1
    Dernier message: 02/09/2009, 09h22

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