Pensei em usar o construtor, mas essa classe nunca será instanciada e sim herdada… Como posso resolver isso?
Como abrir a sessão do Hibernate uma vez só em um DAO generico?
E
5 Respostas
Não sei se entendi bem mas o “Singleton” não resolve seu problema não? Usando um metodo “static” que faz uma condição, se a sessão não existir cria caso o contrario mantém a mesma.
Não sei qual o seu nivel em java, mas no meu blog tem um post onde falo deste padrão caso não conheça.
http://wenderfreese.wordpress.com/2011/04/26/falando-de-singleton/
E
Eu já tenho um singleton no minha classe HibernateUtil que abre a sessão. Só que eu abro ela toda vez que vou chamar um método de inserir, remover, etc… Quero ver se existe uma forma de abrir uma única vez…
opa…eu faço assim.
//hibernate.cfg
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.current_session_context_class">thread</property> //aqui sempre mantem aberta
<property name="hibernate.show_sql">true</property>
</session-factory>
</hibernate-configuration>
//classe que retorna sempre a q esta aberta
import org.hibernate.Session;
import util.HibernateUtil;
public class RetornaSessaoHibernate{
//classe que retorna a sessao aberta do hibernate
public Session hibernateSession(){
Session sessao = HibernateUtil.getSessionFactory().getCurrentSession();
return sessao;
}
}
//aqui a forma que utilizo
Session sessao = new RetornaSessaoHibernate().hibernateSession();
sessao.beginTransaction();
sessao.getTransaction().commit();
t+ e boa sorte.
Geralmente utilizo um metodo dentro do DAO Generico:
public Session getSession() {
return HibernateUtil.getSessionFactory().getCurrentSession();
}
A mesma ideia que o Fernando postou.
Um exemplo:
Abraços,
Criado 8 de agosto de 2011
Ultima resposta 8 de ago. de 2011
Respostas 5
Participantes 4
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo