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

NHibernate Discussion :

[NHibernate] Delete cascade


Sujet :

NHibernate

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 4
    Par défaut [NHibernate] Delete cascade
    Bonjour,

    Voici mon problème : je n'arrive pas à effectuer un Delete en cascade avec NHibernate.

    - Mes 2 tables :
    Produit (id(PK), name)
    Reference (id(PK), reference, produit_id(FK))
    Un produit peut avoir plusieurs références.

    - Mes 2 classes :
    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
     
        private int id;
        private string name;
        private IList referencesList;
        public int Id
        {
          get { return id; }
          set { id = value; }
        }
        public string Name
        {
          get { return name; }
          set { name = value; }
        }
        public IList ReferencesList
        {
          get { return referencesList; }
          set { referencesList = value; }
        }
    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
     
        private int id;
        private string reference;
        private Produit produit;
        public int Id
        {
          get { return id; }
          set { id = value; }
        }
        public string Reference
        {
          get { return reference; }
          set { reference = value; }
        }
        public Produit Produit
        {
          get { return produit; }
          set { produit= value; }
        }
    - Mes 2 fichiers de mapping
    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
     <class name="Produit" table="Produit">
        <id name="Id" column="id">
          <generator class="native"/>
        </id>
        <property name="Name" column="name" />
        <!-- Linked objects list -->
        <bag name="ReferencesList" cascade="all">
          <key column="produit_id" />
          <one-to-many class="Reference" />
        </bag>
      </class>
     
      <class name="Reference" table="Reference">
        <id name="Id" column="id">
          <generator class="native"/>
        </id>
        <property name="Reference" column="reference" />
        <!-- Linked object -->
        <many-to-one name="Produit" class="Produit" column="produit_id" not-null="true" cascade="delete" />
      </class>
    - Dans mon code C# :
    J'ai un objet Produit p (qui contient une liste de Reference). Lorsque j'appelle la méthode Delete(p) j'obtient une erreur :
    "Cannot insert the value NULL into column 'produit_id'"
    J'ai bien compris qu'il y a un problème avec la suppression des références mais je ne vois pas d'où ça vient. Sans doute du fichier de mapping non?

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 4
    Par défaut
    Au temps pour moi,

    Ca y est, ça marche!
    J'ai juste ajouté la propriété inverse="true" sur le bag dans mon fichier de mapping.

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

Discussions similaires

  1. On Delete Cascade
    Par malbarre dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/07/2006, 11h40
  2. SQL Delete Cascade
    Par mschoum dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/06/2006, 14h18
  3. [SQL 2K5] Pb : ON DELETE CASCADE : référence circulaire
    Par n00bi dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 29/05/2006, 08h48
  4. [SQL2K] delete cascade d'une table sur elle même
    Par StormimOn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2006, 16h28
  5. Delete cascade --> problème de temps de traitement
    Par celine31 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 11/01/2006, 12h03

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