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 :

[Hibernate 3] Delete en cascade


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Par défaut [Hibernate 3] Delete en cascade
    Salut,

    Je débute avec hibernate, j'ai déjà bien avancé mais je me heurte a des problèmes (je sépare en plusieurs posts).

    J'ai un modèle de donnée utilisé auparavant avec jdbc. J'ai réalisé des fichiers de mapping et positionné des relations one-to-many quand j'en avais besoin

    Exemple, ici un utilisateur (account) peut avoir plusieurs comptes (characters)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <set name="characterses" inverse="true"   cascade="all-delete-orphan">
                <key>
                    <column name="account_name" length="45">
                        <comment></comment>
                    </column>
                </key>
                <one-to-many class="net.sf.l2j.loginserver.beans.Characters" />
            </set>
    Lorsque dans mon DAO je supprime un account avec un accountDAO.delete (account), j'ai droit a une erreur sur la clé étrangère, je sais donc qu'il n'a pas supprimé les fils en premier.

    J'ai précisé cascade="all-delete-orphan", j'ai oublié quelque chose pour qu'ils deletent les fils en cascade ?

  2. #2
    Membre éclairé
    Profil pro
    Abcde
    Inscrit en
    Août 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Abcde
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2004
    Messages : 59
    Par défaut
    Citation Envoyé par hugo123
    Salut,

    Je débute avec hibernate, j'ai déjà bien avancé mais je me heurte a des problèmes (je sépare en plusieurs posts).

    J'ai un modèle de donnée utilisé auparavant avec jdbc. J'ai réalisé des fichiers de mapping et positionné des relations one-to-many quand j'en avais besoin

    Exemple, ici un utilisateur (account) peut avoir plusieurs comptes (characters)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <set name="characterses" inverse="true"   cascade="all-delete-orphan">
                <key>
                    <column name="account_name" length="45">
                        <comment></comment>
                    </column>
                </key>
                <one-to-many class="net.sf.l2j.loginserver.beans.Characters" />
            </set>
    Lorsque dans mon DAO je supprime un account avec un accountDAO.delete (account), j'ai droit a une erreur sur la clé étrangère, je sais donc qu'il n'a pas supprimé les fils en premier.

    J'ai précisé cascade="all-delete-orphan", j'ai oublié quelque chose pour qu'ils deletent les fils en cascade ?
    il faut egalement mettre un 'delete cascade' au niveau de la FK de la base, c'est juste un indicateur pour hibernate lui permettant d'effacer les objets dépendants en mémoire.

    @+

  3. #3
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Par défaut
    Ok, j'avais cru à tort que Hibernate pouvait s'en charger tout seul. Ma base de données cible est malheureusement mysql avec moteur myIsam, donc sans FK.

    Merci.

  4. #4
    Membre éclairé
    Profil pro
    Abcde
    Inscrit en
    Août 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Abcde
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2004
    Messages : 59
    Par défaut
    Citation Envoyé par hugo123
    Ok, j'avais cru à tort que Hibernate pouvait s'en charger tout seul. Ma base de données cible est malheureusement mysql avec moteur myIsam, donc sans FK.

    Merci.
    il n'y a pas trigger non plus sur Mysql ?

  5. #5
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Par défaut
    Si effectivement, à partir de la version 5.

    C'est une idée à voir.

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Par défaut
    Salut,
    Je pense moi aussi qu'en principe Hibernate s'occupe tout seul de supprimer les enfants quand on delete le parent. Es-tu certain d'avoir précisé le bon foreign key dans ton mapping de la collection one-to-many ? Je veux dire, est-ce que "account-name" est vraiment la clé primaire de Account ?

Discussions similaires

  1. Delete en cascade ?
    Par SteelBox dans le forum Access
    Réponses: 13
    Dernier message: 15/06/2005, 00h10
  2. Pb avec ON DELETE/UPDATE CASCADE
    Par trotters213 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 09/03/2005, 11h55
  3. Delete en cascade
    Par defrgly57 dans le forum ASP
    Réponses: 3
    Dernier message: 12/04/2004, 12h13
  4. Delete on cascade avec SQL server
    Par fadoua dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/01/2004, 11h02
  5. delete en cascade
    Par bruno270579 dans le forum Requêtes
    Réponses: 8
    Dernier message: 16/12/2003, 17h17

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