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 save comportement aberrant


Sujet :

Hibernate Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Hibernate save comportement aberrant
    Bonjour à tous,

    Après 2 jours de galère et de recherche infructueuses, j'en viens à poster mon problème dans ce forum:
    Mon application sous Java utilise Hibernate. Lors de la sauvegarde d'un objet via hibernate, j'obtiens en base de données une ligne qui ne correspond pas avec le contenu de mon objet Java.
    Au niveau du code ça donne ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Transaction tx = session.beginTransaction();
    FileGTS tache = new FileGTS();
    // remplissage
    session.save(tache);
    // Le save se fait en 2 temps car un champ est constitué de la clé concaténé avec la date
    tache.setIdTache(formater.format(tache.getDateSoumission()) + tache.getCodeTraitement());
    session.save(tache);
    tx.commit();
    Au niveau de la console je vois passer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Hibernate: insert into GTS_File (ID_TACHE, CODE_SYND, ETAT, ID_USER, RESULTAT, DATE_SOUMISSION, DATE_FIN, SUPPRIME, DATE_DEMARRAGE, COMPTEUR_TYPE, CODE_TRAITEMENT) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
    Hibernate: update GTS_File set ID_TACHE=?, CODE_SYND=?, ETAT=?, ID_USER=?, RESULTAT=?, DATE_SOUMISSION=?, DATE_FIN=?, SUPPRIME=?, DATE_DEMARRAGE=?, COMPTEUR_TYPE=? where CODE_TRAITEMENT=?
    Dans la fenêtre de débug, mon objet a une date de démarrage à null et un état à "En attente", en base de données, la date est renseignée et le statut vaut "Erreur".

    Si quelqu'un a déjà rencontré ce genre de problème...
    Merci d'avance.

    Nihilist

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour
    je pense que c'est un comportement normal d'hibernate en fait:
    le session.save(tache) permet d'inserer une nouvelle ligne..

    tache.setIdTache(formater.format(tache.getDateSoumission()) + tache.getCodeTraitement: cette ligne declanche un update de Tache

    le dernier save ne sert a rien

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Je réponds bien tard mais merci pour cette réponse.
    Entre temps, j'ai trouvé une façon de faire qui m'assure un comportement cohérent: mettre un tx.commit() après chaque appel à save().

Discussions similaires

  1. Hibernate Save
    Par DhikraDodo dans le forum Hibernate
    Réponses: 2
    Dernier message: 20/03/2011, 18h58
  2. Hibernate + Save
    Par Monta^^ dans le forum Hibernate
    Réponses: 3
    Dernier message: 13/04/2009, 19h10
  3. [Hibernate]session.save ne marche pas au sein d'un loop
    Par ouafaa dans le forum Hibernate
    Réponses: 3
    Dernier message: 13/07/2006, 16h05
  4. [HIBERNATE] recuperer le session.save(.. .)
    Par MicroPuce dans le forum Hibernate
    Réponses: 2
    Dernier message: 24/06/2006, 09h17
  5. Hibernate: pb save multiple
    Par breizhde dans le forum Hibernate
    Réponses: 3
    Dernier message: 06/03/2006, 14h49

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