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 et suppression bidirectionnelle


Sujet :

NHibernate

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut NHibernate et suppression bidirectionnelle
    Bonjour à tous,

    J'ai un petit problème sur une suppression via NHibernate.
    J'ai une classe "Produit" et une classe "Catégorie".

    Dans la classe "Produit", j'ai une propriété "Catégorie" de type "Catégorie".
    Dans la classe "Catégorie", j'ai une propriété "Produits" de type IList<Produit>

    J'ai donc une liaison bidirectionnelle :
    1) à partir d'un produit j'accède à la catégorie qui lui est associé.
    2) à partir d'une catégorie, j'accède à tous les produits qui lui sont associés.

    La suppression d'un produit ne pose pas de problème.
    La suppression d'une catégorie quant à elle est plus problématique !

    Ce que j'attendais de la suppression aurait été de setter la propriété Catégorie de tous les produits concernés à Null (Donc dans la table SQL produits cela équivaudrait à mettre la valeur Null dans le champs Ref_IdCategorie, champs qui bien entendu autorise la valeur Null).

    Je ne sais pas du tout comment je dois mapper mes objets pour avoir cette suppression en cascade mais dans l'autre sens. Auriez vous une idée ?

    J'ai beau chercher sur le site NHibernate, je trouve que niveau doc ca manque un peu de schémas relationnels et autres aides expliquant clairement les différents cas.

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    La suppression d'une donnée de référence suppose que tu supprimes les enregistrements qui y font référence avant. Tu dois donc supprimer les enregistrements ou mettre à null le champ de référence. SQL Peut le faire mais c'est assez risqué.
    Tu peux faire une interface qui te permet de séléctionner une liste de produits correspondants à une catégorie et mettre des cases à cocher pour les sélectionner.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Points : 377
    Points
    377
    Par défaut
    Salut,

    Merci pour ta réponse. En fait, il y a apparement une option dans NHibernate pour que, lorsque tu delete un item de reference, ça mette tous les champs y faisant reference à Null. C'est pile ce que je cherchais mais finalement j'ai eu à changer légerement ma structure donc je n'en ai finalement pas eu besoin

    Pour ceux que ca interesserait, il faut chercher du coté de "on delete set null"

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

Discussions similaires

  1. [NHibernate] Isoler un objet pour sa suppression
    Par dublow dans le forum NHibernate
    Réponses: 6
    Dernier message: 20/06/2011, 20h59
  2. Réponses: 0
    Dernier message: 13/04/2010, 21h10
  3. NHibernate et la suppression des objets enfant
    Par Philenain dans le forum NHibernate
    Réponses: 5
    Dernier message: 24/08/2009, 09h20
  4. [EJB3 Entity] Suppression et relation bidirectionnelle
    Par KillThatGirl dans le forum Java EE
    Réponses: 1
    Dernier message: 31/01/2009, 18h08
  5. Réponses: 3
    Dernier message: 12/06/2002, 21h15

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