A página carrega sim os dados do banco (uma listagem simples de uma tabela)
Criei um DAO Genérico
@SuppressWarnings("unchecked")
public List<T> list() {
logger.info("Listando todos");
return session.createCriteria(persistentClass).list();
}
e a implementação do método
public List<Assinante> lista() {
sf = new AnnotationConfiguration().configure().buildSessionFactory();
session = HibernateUtil.openSession();
tx = session.beginTransaction();
assinanteDAO = new AssinanteDAO(session, Assinante.class);
List<Assinante> assinantes = this.assinanteDAO.list();
tx.commit();
session.close();
return assinantes;
}
a classe HibernateUtil
private static final Logger logger = Logger.getLogger(HibernateUtil.class);
private static final SessionFactory sessionFactory;
private static ThreadLocal<Session> sessions = new ThreadLocal<Session>();
static {
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
}
public static Session openSession() {
if (sessions.get() != null) {
logger.error("There was a session for this thread already!! ");
// grave, alguem nao fechou uma sessao ja aberta!
}
sessions.set(sessionFactory.openSession());
System.out.println("openSession");
return sessions.get();
}
public static void closeCurrentSession() {
sessions.get().close();
sessions.set(null);
}
public static Session currentSession() {
return sessions.get();
}
public static SessionFactory getSessionFactory() {
System.out.println("getSessionFactory");
return sessionFactory;
}
sempre que eu carrego a página... ele recria os mapeamos (eu acho que a palavra é essa) e lota o console de INFO
16:00:38,537 INFO Configuration:1426 - configuring from resource: /hibernate.cfg.xml
16:00:38,538 INFO Configuration:1403 - Configuration resource: /hibernate.cfg.xml
16:00:38,541 INFO Configuration:1541 - Configured SessionFactory: null
16:00:38,544 INFO AnnotationBinder:418 - Binding entity from annotated class: Assinante
16:00:38,545 INFO QueryBinder:64 - Binding Named query: Assinante.findAll => SELECT a FROM Assinante a
16:00:38,586 INFO EntityBinder:424 - Bind entity Assinante on table TASSINANTE
16:00:38,589 INFO AnnotationBinder:418 - Binding entity from annotated class: Cidade
16:00:38,590 INFO QueryBinder:64 - Binding Named query: Cidade.findAll => SELECT c FROM Cidade c
16:00:38,590 INFO EntityBinder:424 - Bind entity Cidade on table TCIDADE