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

NHibernate Discussion :

Suppression en cascade


Sujet :

NHibernate

  1. #1
    Membre du Club
    Inscrit en
    octobre 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 72
    Points : 46
    Points
    46
    Par défaut Suppression en cascade
    Bonjour,

    Je n'arrive pas à comprendre pourquoi un de mes objets ne se supprime pas. Ci-dessous la conf. mise en place :

    Mapping ClassA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <class name="package.ClassA" table="TABLE_A">
       <id name="id" column="ID">
          <generator class="native" />
       </id>
       <property name="name" column="NAME" access="field" />
       ...
    </class>
    Mapping ClassB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <class name="package.ClassB" table="TABLE_B">
       <id name="id" column="ID">
          <generator class="native" />
       </id>
       <property name="name" column="NAME" access="field" />
       <many-to-one name="test" column="TEST" cascade="all" class="package.ClassA" />
    </class>
    Si je supprime un objet classA, il devrait me supprimer les objets classB qui dépendent de mon objet supprimé ?
    Au lieu de cela, il me met une "ConstraintViolationException: Referential integrity constraint violation: "FK7BCCD4799692A339: ..."

  2. #2
    Invité
    Invité(e)
    Par défaut
    Peut-être que c'est lié...

    Dans les ORM comme EF on peut configurer la suppression en cascade dans le modèle (différent du paramétrage côté SGBDR). Dans ce cas tu es obligé de charger tous les enfants en mémoire et pour qu'après la suppression en cascade puisse fonctionner correctement.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    mars 2005
    Messages
    1 272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2005
    Messages : 1 272
    Points : 2 041
    Points
    2 041
    Par défaut
    Non c'est logique :

    C'est B qui contient une liste de A et A ne référence pas B. Donc tu viuole l'intégrité de la base.

    Ce n'est ni une question d'ORM, ni une question Nhibernate, c'est un pb relationnel.

    Et pour la partie nhibernate il faudrait penser à déclare le one to many dans ton A si tu veux ce comportement.

Discussions similaires

  1. Suppression en cascade
    Par music03 dans le forum Installation
    Réponses: 1
    Dernier message: 29/07/2005, 21h47
  2. suppression en cascade dans formulaire et sous-formulaire
    Par tooneygirl dans le forum Access
    Réponses: 7
    Dernier message: 20/06/2005, 15h17
  3. Requetes de suppression en cascade
    Par log2n dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 20/05/2005, 11h07
  4. Suppression en cascade
    Par log2n dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/05/2005, 21h33
  5. [debutant]suppression en cascade
    Par christophebmx dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 03/05/2005, 10h51

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