Bonjour,
j'utilise hibernate dans une application SWT,
Quand je fais la mise à jour d'un objet, la base est bien modifiée mais quand j'interroge cet objet modifiéé à partir de l'application, l'objet conserve les anciennes donnees, lorsque je relance mon application je peux récupérer les données ajoutées. mais lorsque j'ajoute d'autres données je suis obligé chaque fois de relancer l'application pour les récupérer.
j'utilise la classe HibernateUtil que j'ai trouvé sur developpez.com
voici la classe HibernateUtil:
package com.minosis.hibernate;
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Crée la SessionFactory
sessionFactory =
new Configuration().configure().buildSessionFactory();
} catch (HibernateException ex) {
throw new RuntimeException("Problème de configuration : "
+ ex.getMessage(), ex);
}
}
public static final ThreadLocal session = new ThreadLocal();
public static Session currentSession()
throws HibernateException {
Session s = (Session) session.get();
// Ouvre une nouvelle Session, si ce Thread n'en a aucune
if (s == null) {
s = sessionFactory.openSession();
session.set(s);
}
return s;
}
public static void closeSession()
throws HibernateException {
Session s = (Session) session.get();
session.set(null);
if (s != null)
s.close();
}
}
voici un bout de code de mon application qui stocke les données :
Session session = HibernateUtil.currentSession();
Transaction tx = session.beginTransaction();
Objet obj = new Objet();
//bla bla bla
session.save(obj);
session.flush();
session.refresh(obj);
tx.commit();
HibernateUtil.closeSession();
Partager