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 :

unidirectionnal many-to-many et delete


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 20
    Points : 13
    Points
    13
    Par défaut unidirectionnal many-to-many et delete
    Bonjour,

    Je ne vois pas comment, avec Hibernate 3.2.3 parvenir à mes fins:

    J'ai disons un objet 'Filtre' qui sert à filtrer (!) des 'Personnes'.
    J'ai une relation n-n donc entre 'Filtre' et 'Personne'.
    J'ai donc déclaré une relation many-to-many en créant une table d'association 'Filtre_Personne'.
    Comme d'après mon modèle, les 'Personnes' n'ont pas à connaître les 'Filtres', c'est une relation unidirectionnelle définie au niveau de la classe 'Filtre'.

    Or je n'arrive pas à supprimer une 'Personne' dès lors qu'elle fait partie d'un 'Filtre': J'ai une contrainte d'intégrité sur la table 'Filtre_personne' qui m'en empèche.
    Ce que je voudrais, c'est que la suppression de la 'Personne' entraîne la suppression de l'entrée dans la table d'association 'Filtre_personne'.

    Quelqu'un a t'il déjà été confronté (voir résolu) ce problème ?

    Merci par avance,

    G.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    Salut,
    Je ne sais pas, mais ce n'est pas parce que conceptuellement "les 'Personnes' n'ont pas à connaître les 'Filtres'" que tu ne vas pas ajouter la relation dans la classe Personne pour les besoins d'implémentation. C'est un peu comme dans ces relations one-to-many où on a souvent besoin d'ajouter la contrepartie many-to-one dans l'autre classe pour permettre un bon fonctionnement.
    Et puis, les besoins peuvent très bien évoluer et tu verras qu'à un moment tu pourrais avoir envie de connaître les Filtres qui ont été appliqués à une Personne donnée, etc. A mon avis, pas la peine de se compliquer la vie.
    SCJP 5 / SCBCD 1.3 Certified

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Effectivement je cherche à me compliquer la vie
    Mais c'est aussi un problème de (in)dépendance du code:

    Les 'Personnes' sont définies dans un bibliothèque "métier".
    Cette bibliothèque est utilisée par une application qui ajoute des fonctionnalités de 'Filtre'.

    G.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    OK, je comprends, tu n'as donc pas vraiment le choix en fait. Dans ce cas, peut-être qu'il va falloir se tourner vers des triggers dans la base de données pour assurer l'intégrité référentielle.
    SCJP 5 / SCBCD 1.3 Certified

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Si j'utilise un trigger en base (je pensait en fait plutôt a un "cascade delete"), hibernate ne va t'il pas perdre les pédales ?
    Il n'a pas de moyen de savoir qu'une ligne est supprimée et donc il ne mettra pas à jour son cache, il me semble ?

    G.

Discussions similaires

  1. [Mapping] Relation many-to-many delete
    Par micouz dans le forum Hibernate
    Réponses: 0
    Dernier message: 24/09/2012, 18h47
  2. Probleme delete hibernate many-to-many
    Par imanoual dans le forum Hibernate
    Réponses: 1
    Dernier message: 21/10/2007, 20h56
  3. 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
  4. [Hibernate] delete sur un many-to-many
    Par Gob4 dans le forum Hibernate
    Réponses: 1
    Dernier message: 10/05/2006, 16h26
  5. [hibernate]relation many-to-many
    Par quilo dans le forum Hibernate
    Réponses: 5
    Dernier message: 20/12/2005, 10h07

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