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 :

Problème insertion / update


Sujet :

Hibernate Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut Problème insertion / update
    Bonjour, j'ai un problème d'insertion et de mise à jour dans mon application développée avec Hibernate 3. Voici le code de ma servlet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    if(request.getParameter("arc_date") != null && request.getParameter("arc_expe") != null && request.getParameter("arc_objet") != null && request.getParameter("arc_dest") != null && request.getParameter("arc_trans") != null)
                {
                    int id = Integer.parseInt(request.getParameter("id"));
                    Courrier co = null;
     
                    try
                    {
     
                        if(id == -1)
                        {
                            System.out.println("INSERTION " + id);
                            co = new Courrier();
                            co.setDatetime(Date.valueOf(request.getParameter("arc_date")));
                            co.setExpediteur(request.getParameter("arc_expe"));
                            co.setObjet(request.getParameter("arc_objet"));
                            co.setDestinataire(request.getParameter("arc_dest"));
                            co.setTransmetteur(request.getParameter("arc_trans"));     
                            System.out.println("TRANS " + request.getParameter("arc_trans"));
                            session.save(co);
                            tx = session.beginTransaction();
                            tx.commit();
                        }
     
                        else
                        {
                            System.out.println("MISE A JOUR " + id);
                            //co = (Courrier)session.createQuery("from Courrier where id = :id").setParameter("id", id).list().get(0);               
                            co = (Courrier)session.load(Courrier.class, id);
                            co.setDatetime(Date.valueOf(request.getParameter("arc_date")));
                            co.setExpediteur(request.getParameter("arc_expe"));
                            co.setObjet(request.getParameter("arc_objet"));
                            co.setDestinataire(request.getParameter("arc_dest"));
                            co.setTransmetteur(request.getParameter("arc_trans"));
                            session.update(co);
                            tx = session.beginTransaction();
                            tx.commit();
                        }
                    }
    Les tests suivants sont effectués et le code arrive bien jusque là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("MISE A JOUR " + id);
    INFO: MISE A JOUR 1
    INFO: null
    INFO: Hibernate:
    /*
    from
    Courrier */ select
    courrier0_.id as id0_,
    courrier0_.datetime as datetime0_,
    courrier0_.destinataire as destinat3_0_,
    courrier0_.expediteur as expediteur0_,
    courrier0_.objet as objet0_,
    courrier0_.reponse as reponse0_,
    courrier0_.transmetteur as transmet7_0_
    from
    Courrier courrier0_
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("INSERTION " + id);
    INFO: INSERTION -1
    INFO: null
    INFO: Hibernate:
    /*
    from
    Courrier */ select
    courrier0_.id as id0_,
    courrier0_.datetime as datetime0_,
    courrier0_.destinataire as destinat3_0_,
    courrier0_.expediteur as expediteur0_,
    courrier0_.objet as objet0_,
    courrier0_.reponse as reponse0_,
    courrier0_.transmetteur as transmet7_0_
    from
    Courrier courrier0_
    Par contre l'objet n'est pas mis à jour au niveau de la base de donnée. Mon code clocherait il quelque part ?

  2. #2
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 5
    Par défaut
    Hello !

    En voyant ton code, j'ai l'impression que ta transaction n'est pas connecté à tes modifications en base...
    Il faudrait :
    1. Créer la transaction : tx = session.beginTransaction();
    2. Récupérer ton objet en base (session.load) si besoin
    3. Faire ton update ou insert ou merge
    4. Commit / rollback


    Si tu remets les lignes dans le bon ordre, ça devrait marcher...

    Sinon, tu peux utiliser P6Spy pour logger tes requêtes, avec tu pourras voir le numéro de ta connexion, tes requêtes (avec et sans les valeurs) et tes commit/rollback...

    Bon courage !

Discussions similaires

  1. [FB4] Problème insert, delete, update avec Remote Object
    Par gui-yem dans le forum Flex
    Réponses: 16
    Dernier message: 11/04/2011, 21h59
  2. Réponses: 4
    Dernier message: 05/04/2011, 08h32
  3. Problème de syntaxe INSERT/UPDATE
    Par Alexwei dans le forum Langage SQL
    Réponses: 5
    Dernier message: 02/02/2007, 11h31
  4. Problème d'Update et D'Insert
    Par domux dans le forum JDBC
    Réponses: 6
    Dernier message: 10/07/2006, 11h31
  5. [Info] Insert/Update si problèmes divers
    Par portu dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/07/2004, 10h17

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