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 :

SOS - Une Association Many-To-Many qui me rend fou


Sujet :

Hibernate Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut SOS - Une Association Many-To-Many qui me rend fou
    Bonjour,

    SVP, je tente de mapper mes classes Hibernate afin d'utiliser le Delete d'une entité en Cascade.

    Voilà mon modèle:
    Une View contient une liste de groupes (en utilisant la table d'association Asso_Project_Manager_Group_View).
    Un Group contient une liste de Project Manager(en utilisant la table d'association Asso_Project_Manager_Group).

    Ce qui donne:


    Avec les mappings suivants:

    - ProjectManagerStatViewVO (or View):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    <class name="EJL.ORM.Entity.ProjectManagerStatViewVO, ORM" table="STAT_PROJECT_MANAGER_VIEW" >
        <id name="id" access="field" column="ID" type="System.Int32" unsaved-value="0">
          <generator class="native"/>
        </id>
        <property name="label" column="LABEL" access="field" not-null="true" type="System.String"  length="250" insert="true" update="true"/>
        <bag name="groupList" access="field" lazy="false" table="ASSO_PROJECT_MANAGER_GROUP_VIEW" cascade="all">
          <key column="VIEW_ID"/>
          <many-to-many column="GROUP_ID"
             class="EJL.ORM.Entity.ProjectManagerStatGroupVO, ORM"/>
        </bag>
      </class>
    ProjectManagerStatGroupVO (or Group)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <class name="EJL.ORM.Entity.ProjectManagerStatGroupVO, ORM" table="STAT_PROJECT_MANAGER_GROUP" >
        <id name="id" access="field" column="ID" type="System.Int32" unsaved-value="0">
          <generator class="native"/>
        </id>
        <property name="label" column="LABEL" access="field" not-null="true" type="System.String"  length="250" insert="true" update="true"/>
        <bag name="projectManagerList" access="field" lazy="false" table="ASSO_PROJECT_MANAGER_GROUP" cascade="all">
          <key column="GROUP_ID"/>
          <many-to-many column="PROJECT_MANAGER_ID"
             class="EJL.ORM.Entity.ProjectManagerVO, ORM"/>
        </bag>
    Les méthodes Save et Update fonctionnent parfaitement
    (En effet, Hibernate ajoute/M.A.J les vues, leur(s) groupe(s) et les differents liens en un seul appel de méthode).
    Maintanant, j'aimerais en faire autant avec la suppression.
    Actuellement, lors de la suppression d'une View, il semble que Hibernate tente de supprimer toutes les instances liées à la View y compris celle de ProjectManager qui liés à d'autres entités dans mon modèle. cela me génère donc une exception mentionnant une violation de contrainte ...

    Comment puis-je spécifier à Hibernate de supprimer la View ainsi que toutes les instances liées sauf celle de ProjectManager?

    Merci. Jonathan

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Tu cherches à supprimer tout les groupes liés à une view si on supprime cette view. Mais tu ne veux pas supprimer les managers liés aux groupes liés à cette view. C'est ca?
    Parce que dans ce cas vu que tu as mis cascade="all" pour view et group cela me semble plutôt normal que tout soit supprimé.

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    là ou tu ne veux pas que le delete aille en cascade, remplace cascade="all" par cascade="save,update"

Discussions similaires

  1. [Débutant] UPDATE d'une assocation N-N (many to many)
    Par Binenebi dans le forum Entity Framework
    Réponses: 2
    Dernier message: 01/05/2013, 15h22
  2. [2012] Intersection sur une même hiérarchie en many to many
    Par Jester dans le forum SSAS
    Réponses: 5
    Dernier message: 30/04/2013, 18h05
  3. Classe d'association, scaffolding et Many to many
    Par flotho dans le forum Grails
    Réponses: 0
    Dernier message: 09/02/2012, 18h56
  4. [DC]navigabilité entre les classes d'une association one-to-many
    Par tnarol dans le forum Diagrammes de Classes
    Réponses: 1
    Dernier message: 04/03/2008, 07h48
  5. Un peu de mal a comprendre le concepte "one-to-many" et "many-to-many"
    Par chriscoolletoubibe dans le forum Hibernate
    Réponses: 4
    Dernier message: 29/03/2007, 18h50

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