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

JPA Java Discussion :

EJB3: Problème avec CascadeType.MERGE


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Inscrit en
    Juin 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1
    Par défaut EJB3: Problème avec CascadeType.MERGE
    Bonjour,

    Je renvontre un problème dans l'utilisation du CascadeType.MERGE.

    J'ai mappé la relation bidirectionnelle OneToMany/ManyToOne suivante: une personne possède plusieurs adresses.

    1. Transaction 1: Je persiste: Personne P1 possède deux Adresses A1 et A2
    2. Transaction 2:
    2.1 Je charge P1
    2.2 Je désassocié (dans les 2 directions) l'adresse A1 de la personne P1
    3. Transaction 3: Je fais un EntityManager.merge(P1)

    Problème => en db: A1 est toujours associé à P1.
    Cependant, tout se déroulle comme prévu si tout se déroule dans la même transaction.

    Code source:

    @Entity
    public class Adresse{
    ...
    @ManyToOne
    public Personne getPersonne(){...}
    ...
    }

    @Entity
    public class Personne{
    ...
    @OneToMany(mappedBy="personne", cascade=CascadeType.ALL)
    public Collection<Adresse> getAdresses(){...}
    ...
    }



    Merci pour toute info à ce sujet.

  2. #2
    Membre expérimenté Avatar de xv-mnt
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 142
    Par défaut
    Si tu désassocies le lien dans les 2 sens, la propagation du MERGE de peut se faire car il n'y a plus de lien entre P1 et A1.
    La solution est de faire le merge EN PLUS sur A1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EntityManager.merge(P1);
    EntityManager.merge(A1);
    çà devrait marcher...

    Je précise pour être plus clair qu'il faut bien rompre le lien dans les 2 entités comme tu l'as fait.

Discussions similaires

  1. [InstallShield]Problème avec les merge module
    Par dm38 dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 03/03/2010, 14h28
  2. [CruiseControl] Problème avec svn merge
    Par nzo70 dans le forum Intégration Continue
    Réponses: 1
    Dernier message: 25/06/2009, 18h04
  3. [CLI] Problème avec svn merge
    Par babo dans le forum Subversion
    Réponses: 1
    Dernier message: 09/09/2008, 13h38
  4. [EJB3] problème d'intéraction avec la BDD
    Par toomsounet dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 15/03/2007, 00h08
  5. [EJB3] problème de fetch=lazy avec ejb3
    Par pbdlpc dans le forum JPA
    Réponses: 2
    Dernier message: 16/01/2007, 21h52

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