aymdeb
Messages postés39Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention25 avril 2008
-
5 nov. 2007 à 14:30
the_wwt
Messages postés177Date d'inscriptionjeudi 5 octobre 2006StatutMembreDernière intervention16 janvier 2009
-
5 nov. 2007 à 16:28
Bonjour,
Je réalise actuellement une appli web en J2EE. J'ai une page JSP qui affiche une liste avec des données provenant d'une base MySQL en utilisant Hibernate (jusque là, pas de problème). Sous cette liste, il y a une zone de texte qui permet la saisie d'une nouvelle donnée et un bouton "Ajouter". Ce bouton ajoute la nouvelle donnée dans la base (ça marche), crée l'objet correspondant qui est sauvegardé dans la session Hibernate et reliste les données mais là, la nouvelle données n'apparaît pas. En utilisant le debug (sous Eclipse), je vois que c'est Hibernate qui a les anciennes données, il n'a pas récupéré la nouvelle (donc logique qu'il ne l'affiche pas). Comment faire pour qu'il se mette à jour ?
Extrait des programmes Méthode qui sauvegarde l'objet dans la session :
//Collection c = new ArrayList();
Collection<Objet> cObj= new
ArrayList<Objet>();
try {
Session session = HibernateUtil. currentSession ();
List<Objet> Listeobjets = session.createQuery("select h from Objet as h").list();
for
(Iterator<Objet> iterO = Listeobjets.iterator(); iterO.hasNext();) {
Objet o = (Objet) iterO.next();
cObj.add(o);
}
return cObj;
} catch (HibernateException e) {
log .error(e);
throw new ReadInDatabaseException("E0003","Erreur de récupération en base de données",e);
}
}
the_wwt
Messages postés177Date d'inscriptionjeudi 5 octobre 2006StatutMembreDernière intervention16 janvier 20091 5 nov. 2007 à 16:28
Bonjour,
c'est pas commun... dans ton fichier hibernate.cfg.xml comment as tu déclaré current_session_context_class?
thread
Si c'est ainsi et que tes deux méthodes sont appelées dans deux tread différents c'est normal...
Essaye session.flush() ou clean() ou refresh() ou reconnct()
Ou encore:
HibernateUtil.getSessionFactory().openSession();