Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package dao; /** * * @author Drazzull */ import conexao.Hibernate4Util; import java.util.ArrayList; import java.util.List; import model.Apostador; import model.Jogo; import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.criterion.Restrictions; import org.hibernate.envers.AuditReader; import org.hibernate.envers.AuditReaderFactory; public class ApostadorDao { /** * Salva o apostador no banco de dados * * @param apostador Objeto contendo as informaes do apostador que sero salvas */ public void salvar(Apostador apostador) { CrudGenerico.salvar(apostador); } /** * Realiza a alterao dos dados de um apostador j salvo anteriormente no banco * * @param apostador Objeto do tipo apostador com os dados que sero salvos */ public void atualizar(Apostador apostador) { CrudGenerico.atualizar(apostador); } /** * Realiza a excluso do apostador * * @param apostador Objeto do tipo apostador que ser excludo */ public void excluir(Apostador apostador) { CrudGenerico.excluir(apostador); } /** * Obtm lista com todos os apostadores do banco * * @return Lista com todos os grupos do banco */ public List<Apostador> listar() { try { Session sessao = Hibernate4Util.getSessionFactory(); Transaction transacao = sessao.beginTransaction(); Criteria cr = sessao.createCriteria(Apostador.class); List<Apostador> resultado = cr.list(); transacao.commit(); return resultado; } catch (HibernateException e) { System.out.println("No foi possvel selecionar apostadores. Erro: " + e.getMessage()); throw new HibernateException(e); } } public List<Apostador> listarAuditoria() throws Exception { try { Session sessao = Hibernate4Util.getSessionFactory(); Transaction transacao = sessao.beginTransaction(); AuditReader reader = AuditReaderFactory.get(sessao); List<Object[]> resultList = reader.createQuery().forRevisionsOfEntity(Apostador.class, false, true) .getResultList(); List<Apostador> listaAuditada = new ArrayList<>(); int contador = 0; for (Object[] objTmp : resultList) { Apostador apostadorTmp = (Apostador) objTmp[0]; apostadorTmp.setRevType(objTmp[2].toString()); if (apostadorTmp.getGrupo() != null) { apostadorTmp.getGrupo().getCodigo(); } if (apostadorTmp.getTimeDePreferencia() != null) { apostadorTmp.getTimeDePreferencia().getCodigo(); } listaAuditada.add(contador, apostadorTmp); contador++; } transacao.commit(); return listaAuditada; } catch (HibernateException e) { throw new Exception("No foi possvel buscar a auditoria. Erro: " + e.getMessage()); } } /** * Busca o cdigo de um apostador * * @param valor Cdigo a ser pesquisado * @return Apostador referente ao cdigo */ public Apostador buscar(int valor) { try { Session sessao = Hibernate4Util.getSessionFactory(); Transaction transacao = sessao.beginTransaction(); Criteria cr = sessao.createCriteria(Apostador.class); cr.add(Restrictions.eq("codigo", valor)); Apostador apostador = (Apostador) cr.uniqueResult(); transacao.commit(); return apostador; } catch (HibernateException e) { System.out.println("No foi possvel buscar o apostador. Erro: " + e.getMessage()); } return null; } public List<Apostador> listarApostadoresDeUmJogo(Jogo jogo) { try { Session sessao = Hibernate4Util.getSessionFactory(); Transaction transacao = sessao.beginTransaction(); Query consulta = sessao .createQuery( "from Apostador ap " + " join ap.aposta as a" + " join a.jogo as j" + " where j = :jog") .setParameter("jog", jogo); List<Apostador> resultado = consulta.list(); transacao.commit(); return resultado; } catch (HibernateException e) { System.out.println("No foi possvel selecionar os apostadores. Erro: " + e.getMessage()); throw new HibernateException(e); } } }