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 CertificadoAc. * * @author CodeGenerator - Esta classe foi gerada automaticamente * @since 1.0 * @version 1.0, Fri Sep 01 13:27:14 BRT 2006 * */ public class HibernateCertificadoAcDAO implements CertificadoAcDAO { private static Logger log = Logger.getLogger(CertificadoAcDAO.class); public HibernateCertificadoAcDAO() { } /** * Listagem de objetos CertificadoAc. * * @param qtdPagina quantidade de itens listados em cada pagina * @param numPagina numero da pagina a ser buscada * @return Lista de objetos CertificadoAc * @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(CertificadoAc.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.certificadoAc.listar", he); } catch (Exception e) { throw new ApplicationException("mensagem.erro.certificadoAc.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 CertificadoAc. * * @return Lista de objetos CertificadoAc * @throws Exception Caso ocorra erro com hibernate/conexao. */ public Collection<?> listar() throws ApplicationException, Exception { return this.listar(null, null); } /** * Obtem um objeto CertificadoAc. * * @param obj Chave primaria do objeto * @throws Exception Caso ocorra erro com hibernate/conexao. */ public CertificadoAc obter(long obj) throws ApplicationException, Exception { try { Session session = HibernateUtil.currentSession(); return (CertificadoAc)session.get(CertificadoAc.class, obj); } catch (HibernateException e) { throw new ApplicationException("mensagem.erro.certificadoAc.obter", e); } catch (Exception e) { throw new ApplicationException("mensagem.erro.certificadoAc.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 buscarPorKeyIdSql = "SELECT certificadoAc " + "FROM gov.pr.celepar.tabeliao.pojo.CertificadoAc as certificadoAc " + "WHERE certificadoAc.keyId = :key "; public CertificadoAc buscarPorKeyId(String key) throws ApplicationException, Exception { try { Session session = HibernateUtil.currentSession(); Query query = session.createQuery(buscarPorKeyIdSql).setCacheable(true); query.setString("key", key); return (CertificadoAc)query.uniqueResult(); } catch (HibernateException e) { throw new ApplicationException("mensagem.erro.certificadoAc.buscarPorId", e); } catch (Exception e) { throw new ApplicationException("mensagem.erro.certificadoAc.buscarPorId", 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 buscarPorSubjectSerialSql = "SELECT certificadoAc " + "FROM gov.pr.celepar.tabeliao.pojo.CertificadoAc as certificadoAc " + "WHERE certificadoAc.numSerie = :serial " + " AND ((certificadoAc.ac.pai is not null AND certificadoAc.ac.pai.dn = :subject) OR " + " (certificadoAc.ac.pai is null AND certificadoAc.ac.dn = :subject))"; public CertificadoAc buscarPorSubjectSerial(String subject, String serial) throws ApplicationException, Exception { try { Session session = HibernateUtil.currentSession(); Query query = session.createQuery(buscarPorSubjectSerialSql).setCacheable(true); query.setString("subject", subject); query.setString("serial", serial); return (CertificadoAc)query.uniqueResult(); } catch (HibernateException e) { throw new ApplicationException("mensagem.erro.certificadoAc.buscarPorSubjectSerial", e); } catch (Exception e) { throw new ApplicationException("mensagem.erro.certificadoAc.buscarPorSubjectSerial", e, ApplicationException.ICON_ERRO); } finally { try { HibernateUtil.closeSession(); } catch (Exception e) { log.error("Erro ao Fechar Conexao com o Hibernate: ", e); } } } }