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 :
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à :
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_
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 ?
Partager