package gov.pr.celepar.tabeliao.dao.implementation;
/*
Este programa � licenciado de acordo com a
LPG-AP (LICEN�A P�BLICA GERAL PARA PROGRAMAS DE COMPUTADOR DA ADMINISTRA��O P�BLICA),
vers�o 1.1 ou qualquer vers�o posterior.
A LPG-AP deve acompanhar todas PUBLICA��ES, DISTRIBUI��ES e REPRODU��ES deste Programa.
Caso uma c�pia da LPG-AP n�o esteja dispon�vel junto com este Programa,
voc� pode contatar o LICENCIANTE ou ent�o acessar diretamente:
http://www.celepar.pr.gov.br/licenca/LPG-AP.pdf
Para poder USAR, PUBLICAR, DISTRIBUIR, REPRODUZIR ou ALTERAR este Programa
� preciso estar de acordo com os termos da LPG-AP
*/
import gov.pr.celepar.tabeliao.database.HibernateUtil;
import gov.pr.celepar.framework.exception.ApplicationException;
import java.util.*;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.apache.log4j.Logger;
import gov.pr.celepar.tabeliao.pojo.*;
import gov.pr.celepar.tabeliao.dao.*;
/**
* Classe de manipulacao de objetos da classe CertificadoPublico.
*
* @author CodeGenerator - Esta classe foi gerada automaticamente
* @since 1.0
* @version 1.0, Fri Sep 01 13:27:14 BRT 2006
*
*/
public class HibernateCertificadoPublicoDAO implements CertificadoPublicoDAO {
private static Logger log = Logger.getLogger(CertificadoPublicoDAO.class);
public HibernateCertificadoPublicoDAO() {
}
/**
* Salva objeto CertificadoPublico.
*
* @param obj Objeto da classe CertificadoPublico
* @throws Exception Caso ocorra erro com hibernate/conexao.
*/
public void salvar(CertificadoPublico obj) throws ApplicationException, Exception {
try {
Session session = HibernateUtil.currentSession();
session.save(obj);
} catch (HibernateException e) {
throw new ApplicationException("mensagem.erro.certificadoPublico.salvar", e);
} catch (Exception e) {
throw new ApplicationException("mensagem.erro.certificadoPublico.salvar", e, ApplicationException.ICON_ERRO);
} finally {
try {
HibernateUtil.closeSession();
} catch (Exception e) {
log.error("Erro ao Fechar Conexao com o Hibernate: ", e);
}
}
}
/**
* Altera objeto CertificadoPublico.
*
* @param obj Objeto da classe CertificadoPublico
* @throws Exception Caso ocorra erro com hibernate/conexao.
*/
public void alterar(CertificadoPublico obj) throws ApplicationException, Exception {
try {
Session session = HibernateUtil.currentSession();
session.update(obj);
} catch (HibernateException e) {
throw new ApplicationException("mensagem.erro.certificadoPublico.alterar", e);
} catch (Exception e) {
throw new ApplicationException("mensagem.erro.certificadoPublico.alterar", e, ApplicationException.ICON_ERRO);
} finally {
try {
HibernateUtil.closeSession();
} catch (Exception e) {
log.error("Erro ao Fechar Conexao com o Hibernate: ", e);
}
}
}
/**
* Exclui objeto CertificadoPublico.
*
* @param obj Objeto da classe CertificadoPublico
* @throws Exception Caso ocorra erro com hibernate/conexao.
*/
public void excluir(CertificadoPublico obj) throws ApplicationException, Exception {
try {
Session session = HibernateUtil.currentSession();
session.delete(obj);
} catch (HibernateException e) {
throw new ApplicationException("mensagem.erro.certificadoPublico.excluir", e);
} catch (Exception e) {
throw new ApplicationException("mensagem.erro.certificadoPublico.excluir", e, ApplicationException.ICON_ERRO);
} finally {
try {
HibernateUtil.closeSession();
} catch (Exception e) {
log.error("Erro ao Fechar Conexao com o Hibernate: ", e);
}
}
}
/**
* Listagem de objetos CertificadoPublico.
*
* @param qtdPagina quantidade de itens listados em cada pagina
* @param numPagina numero da pagina a ser buscada
* @return Lista de objetos CertificadoPublico
* @throws Exception Caso ocorra erro com hibernate/conexao.
*/
public Collection<?> listar(Integer qtdPagina, Integer numPagina) throws ApplicationException, Exception {
Collection<?> coll = new ArrayList<Object>();
try {
Session session = HibernateUtil.currentSession();
Criteria q = session.createCriteria(CertificadoPublico.class);
if (qtdPagina != null && numPagina != null) {
q.setMaxResults(qtdPagina.intValue());
q.setFirstResult( (numPagina.intValue()-1) * qtdPagina.intValue() );
}
coll = q.list();
} catch (HibernateException he) {
throw new ApplicationException("mensagem.erro.certificadoPublico.listar", he);
} catch (Exception e) {
throw new ApplicationException("mensagem.erro.certificadoPublico.listar", e, ApplicationException.ICON_ERRO);
} finally {
try {
HibernateUtil.closeSession();
} catch (Exception e) {
log.error("Erro ao Fechar Conexao com o Hibernate: ", e);
}
}
return coll;
}
/**
* Listagem de objetos CertificadoPublico.
*
* @return Lista de objetos CertificadoPublico
* @throws Exception Caso ocorra erro com hibernate/conexao.
*/
public Collection<?> listar() throws ApplicationException, Exception {
return this.listar(null, null);
}
/**
* Obtem um objeto CertificadoPublico.
*
* @param obj Chave primaria do objeto
* @throws Exception Caso ocorra erro com hibernate/conexao.
*/
public CertificadoPublico obter(long obj) throws ApplicationException, Exception {
try {
Session session = HibernateUtil.currentSession();
return (CertificadoPublico)session.get(CertificadoPublico.class, obj);
} catch (HibernateException e) {
throw new ApplicationException("mensagem.erro.certificadoPublico.obter", e);
} catch (Exception e) {
throw new ApplicationException("mensagem.erro.certificadoPublico.obter", e, ApplicationException.ICON_ERRO);
} finally {
try {
HibernateUtil.closeSession();
} catch (Exception e) {
log.error("Erro ao Fechar Conexao com o Hibernate: ", e);
}
}
}
private static final String buscarCertificadoPublicoPorCertificadoSerialSql = "SELECT certPub " +
"FROM gov.pr.celepar.tabeliao.pojo.CertificadoPublico as certPub " +
"WHERE certPub.certificadoAc = :certificadoAc " +
" AND certPub.numSerie = :numSerie";
public CertificadoPublico buscarCertificadoPublicoPorCertificadoSerial(CertificadoAc certificadoAc, String numSerie) throws ApplicationException, Exception {
try {
Session session = HibernateUtil.currentSession();
Query query = session.createQuery(buscarCertificadoPublicoPorCertificadoSerialSql).setCacheable(true);
query.setParameter("certificadoAc", certificadoAc);
query.setString("numSerie", numSerie);
return (CertificadoPublico)query.uniqueResult();
} catch (HibernateException e) {
throw new ApplicationException("mensagem.erro.certificadoPublico.buscarPorSerial", e);
} catch (Exception e) {
throw new ApplicationException("mensagem.erro.certificadoPublico.buscarPorSerial", e, ApplicationException.ICON_ERRO);
} finally {
try {
HibernateUtil.closeSession();
} catch (Exception e) {
log.error("Erro ao Fechar Conexao com o Hibernate: ", e);
}
}
}
}