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 ?