Design Patterns simples do Hibernate: está correto?

0 respostas
lucascaton

Olá pessoal.

Minha dúvida é apenas pra garantir que estou fazendo o design pattern correto para o Hibernate.

Bom, estou fazendo assim:

Uso apenas uma sessão (deixei static). Isto está correto? Não preciso usar o HibernateUtil.getSessionFactory().openSession() nem o HibernateUtil.getSessionFactory().getCurrentSession().close() em momento nenhum?

Depois, abro uma transaction apenas quando vou gerenciar dados no banco (Insert, Update, etc.). Quando vou apenas fazer consultas (selects), não abro uma transaction. Isto está correto?

Os códigos ficam mais ou menos assim:
//FAZENDO  UM SELECT
<%
//Pega a sessão atual
Session sessao = HibernateUtil.getSessionFactory().getCurrentSession();

//Aqui vai minha consulta (SELECT) usando o objeto sessao

//Pronto, aqui eu termino o arquivo sem fechar nada.
%>
//FAZENDO UM INSERT, UPDATE ou DELETE (por exemplo)
<%
//Pega a sessão atual
Session sessao = HibernateUtil.getSessionFactory().getCurrentSession();

//Inicio a transaction
sessao.beginTransaction();

//Aqui vai o meu código (INSERT, UPDATE ou DELETE, por exemplo)

//Depois, eu faço um commit com a transaction
sessao.getTransaction().commit();

//E depois eu não fecho a sessão.
%>

Por favor, me digam o que está certo e o que está errado.

Obrigado.

Criado 3 de outubro de 2008
Respostas 0
Participantes 1