package gcom.gerencial.cadastro.imovel; import gcom.util.ErroRepositorioException; import gcom.util.HibernateUtil; import java.util.Collection; import org.hibernate.HibernateException; import org.hibernate.Session; /** * < <Descri��o da Classe>> * * @author Administrador */ public class RepositorioGerencialImovelHBM implements IRepositorioGerencialImovel { private static IRepositorioGerencialImovel instancia; /** * Construtor da classe RepositorioMicromedicaoHBM */ private RepositorioGerencialImovelHBM() { } /** * Retorna o valor de instancia * * @return O valor de instancia */ public static IRepositorioGerencialImovel getInstancia() { if (instancia == null) { instancia = new RepositorioGerencialImovelHBM(); } return instancia; } /** * <Breve descri��o sobre o caso de uso> * * <Identificador e nome do caso de uso> * * @author Pedro Alexandre * @date 27/04/2007 * * @param imovel * @return * @throws ErroRepositorioException */ public Collection pesquisarObterQuantidadeEconomiasCategoria(Integer imovel) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); String consulta = null; try { consulta = "select c.id, c.descricao, c.consumoEstouro, " + "c.vezesMediaEstouro, sum(isb.quantidadeEconomias), " + "isb.comp_id.imovel.id, " + "c.consumoAlto, " + "c.mediaBaixoConsumo, " + "c.vezesMediaAltoConsumo, " + "c.porcentagemMediaBaixoConsumo," + "c.descricaoAbreviada, " + "c.numeroConsumoMaximoEc, " + "c.indicadorCobrancaAcrescimos " + "from GImovelSubcategoria isb " + "inner join isb.comp_id.gSubcategoria sb " + "inner join sb.gCategoria c " + "where isb.comp_id.imovel.id = :imovelId " + "group by c.id, c.descricao, c.consumoEstouro, c.vezesMediaEstouro," + "isb.comp_id.imovel.id, c.consumoAlto, c.mediaBaixoConsumo, c.vezesMediaAltoConsumo," + "c.porcentagemMediaBaixoConsumo,c.descricaoAbreviada,c.numeroConsumoMaximoEc, c.indicadorCobrancaAcrescimos "; //+ "having isb.comp_id.imovel.id = :imovelId "; retorno = session.createQuery(consulta).setInteger("imovelId", imovel.intValue()).list(); } catch (HibernateException e) { throw new ErroRepositorioException(e, "Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } /** * <Breve descri��o sobre o caso de uso> * * <Identificador e nome do caso de uso> * * <Breve descri��o sobre o subfluxo> * * <Identificador e nome do subfluxo> * * <Breve descri��o sobre o fluxo secund�rio> * * <Identificador e nome do fluxo secund�rio> * * @author Administrador * @date 27/04/2007 * * @param idCategoria * @return * @throws ErroRepositorioException */ public Collection obterSubCategoriasPorCategoria(Integer idCategoria) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); try { String hql = "select new ImovelSubCategoria(" + "imovelSubCategoria.id, " + "imovelSubCategoria.quantidadeEconomias, " + "subCimovelSubCategoriaategoria.ultimaAlteracao) " + "from ImovelSubCategoria as imovelSubCategoria " + "where imovelSubCategoria.subcategoria.categoria.id = :idCategoria "; retorno = session.createQuery(hql).setInteger("idCategoria", idCategoria).list(); } catch (HibernateException e) { throw new ErroRepositorioException("Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } }