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 :

pourquoi update apres insertInto ?


Sujet :

Hibernate Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut pourquoi update apres insertInto ?
    Salut,

    J'aimerais comprendre une chose sur hibernate. Je vous explique mon problème. J'ai des objets Value et des objets instances. Les values ont une référence vers instances et les instances ont une liste de values d'ou le mapping :

    value.hbm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
      <many-to-one name="instance" cascade="none"/>
    ....
    instance.hbm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <set name="values" lazy="true" batch-size="10" cascade="all-delete-orphan">
            	<key column="instance"/>
            	<one-to-many class="com.server.Value"/>
            </set>
    pour sauvegarder :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    session.saveOrUpdate(instance);
    Quand je sauvegarde une instance il me sauvegarde les values par cascading.

    En regardant le code sql je vois :

    1. il fait des insertInto(...) , ça c'est normal.
    2.Apres avoir inséré toutes les valeurs et instance en base, il update toutes les values qu'il vient d'insérer.
    Je pense qu'il fait cela à cause des références vers les instances que contient la table Value. Mais c'est la que je trouve ça bizarre. Ne pourrait t-il pas se debrouiller pour faire un insertInto Value (...) qui contiennent tous ce qu'il faut (c'est à dire la référence vers l'instance + le reste du tuple)

    Y A t-il un moyen de se passer de la phase d'update lors de la création de mes value ?

    Je ne connais pas exactement le fonctionnement d'hibernate donc il y à peut etre des choses qui m'échappent mais si quelqu'un peut m'eclairer la dessus je le remercie

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    http://www.hibernate.org/hib_docs/v3...entchild-bidir

    Ce chapitre parle de ton "problème" et de la façon d'y remédier grace à l'attribut inverse="true".

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    Excellent!!! merci fr1man.

    Effectivement ça ressemble beaucoup à mon probléme. Reste plus qu'à faire les modifs pour le corriger.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/10/2007, 13h29
  2. probleme trigger update apres un delete
    Par agur29 dans le forum Développement
    Réponses: 10
    Dernier message: 12/09/2007, 20h30
  3. [ASP.NET-ACCESS] probleme d'update apres insertion
    Par come18 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 14/05/2007, 13h59
  4. Réponses: 4
    Dernier message: 17/10/2006, 16h11
  5. Réponses: 13
    Dernier message: 20/03/2006, 17h26

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