package gcom.faturamento.repositorio; import java.util.ArrayList; import java.util.Collection; import org.hibernate.Session; import gcom.faturamento.FaturamentoSituacaoHistorico; import gcom.util.ErroRepositorioException; import gcom.util.HibernateUtil; public class RepositorioFaturamentoSituacao { private static RepositorioFaturamentoSituacao instance; private RepositorioFaturamentoSituacao(){} public static RepositorioFaturamentoSituacao getInstance(){ if (instance == null){ instance = new RepositorioFaturamentoSituacao(); } return instance; } public Collection<FaturamentoSituacaoHistorico> faturamentosHistoricoVigentesPorImovel(Integer imovelId) throws ErroRepositorioException{ Collection<FaturamentoSituacaoHistorico> retorno = situacoesEspeciaisFaturamentoVigentes(imovelId); if(retorno == null || retorno.isEmpty()) { return new ArrayList<FaturamentoSituacaoHistorico>(); } else { return retorno; } } @SuppressWarnings("unchecked") public Collection<FaturamentoSituacaoHistorico> situacoesEspeciaisFaturamentoVigentes(Integer idImovel) throws ErroRepositorioException{ Session session = HibernateUtil.getSession(); StringBuilder sql = new StringBuilder(); sql.append(" select t from FaturamentoSituacaoHistorico as t" ) .append(" where t.imovel.id = :idImovel ") .append(" and t.anoMesFaturamentoRetirada is null" ); Collection<FaturamentoSituacaoHistorico> retorno = new ArrayList<FaturamentoSituacaoHistorico>(); try { retorno = (Collection<FaturamentoSituacaoHistorico>) session.createQuery(sql.toString()) .setParameter("idImovel", idImovel) .list(); } catch (Exception e) { throw new ErroRepositorioException(e); }finally{ session.close(); } return retorno; } }