sexta-feira, 16 de julho de 2010

Classe DAO para uso com HIBERNATE

package com.cts.persistence.DAO;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.cts.persistence.Session.CreateSession;

/**
*
* @author pedro.dias
*/

// Coloque a anotação de referência Genérica "T" na frente do nome da classe
public class GenericDAO {

private static Session sessao;
private Transaction transacao;

/** Creates a new instance of GenericDAO */

public void inserir(T obj) throws Exception {
sessao = CreateSession.getSession();
transacao = sessao.beginTransaction();
sessao.save(obj);
sessao.flush();
transacao.commit();
sessao.close();
}

public void alterar(T obj) throws Exception {
sessao = CreateSession.getSession();
transacao = sessao.beginTransaction();

sessao.update(obj);
sessao.flush();
transacao.commit();
sessao.close();

}

public void deletar(T obj) throws Exception {
sessao = CreateSession.getSession();
transacao = sessao.beginTransaction();

sessao.delete(obj);
sessao.flush();
transacao.commit();
sessao.close();

}

public List listarTudo(Class clazz) throws Exception {
sessao = CreateSession.getSession();
transacao = sessao.beginTransaction();

List objts;
objts = null;
Criteria selectAll = sessao.createCriteria(clazz);
transacao.commit();
objts = selectAll.list();
sessao.close();
return objts;
}

public Object buscar(Class clazz, String pk) throws Exception {
sessao = CreateSession.getSession();
transacao = sessao.beginTransaction();
Object objt = (Object) sessao.load(clazz, new Integer(Integer
.parseInt(pk)));
transacao.commit();
sessao.flush();
sessao.close();
return objt;
}

public void rollBack() {
transacao.rollback();
sessao.close();
}

public void closeConnection() throws Exception {
sessao = CreateSession.getSession();
sessao.connection().createStatement().execute("SHUTDOWN");
}

}

Nenhum comentário:

Postar um comentário