package gcom.cadastro.imovel;
import gcom.util.ErroRepositorioException;
import gcom.util.HibernateUtil;
import java.util.Collection;
import org.hibernate.HibernateException;
import org.hibernate.Session;
public class RepositorioCategoriaHBM implements IRepositorioCategoria{
private static IRepositorioCategoria instancia;
private RepositorioCategoriaHBM() {
}
public static IRepositorioCategoria getInstancia() {
if (instancia == null) {
instancia = new RepositorioCategoriaHBM();
}
return instancia;
}
@SuppressWarnings("unchecked")
public Collection<Categoria> pesquisarCategoria() throws ErroRepositorioException {
Collection<Categoria> retorno = null;
Session session = HibernateUtil.getSession();
try {
String consulta = "select categoria from Categoria categoria ";
retorno = (Collection<Categoria>)session.createQuery(consulta).list();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public Object pesquisarObterQuantidadeCategoria() throws ErroRepositorioException {
Object retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT count(*) FROM gcom.cadastro.imovel.Categoria as catg ";
retorno = session.createQuery(consulta).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public Object pesquisarObterQuantidadeSubcategoria() throws ErroRepositorioException {
Object retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT count(*) FROM gcom.cadastro.imovel.Subcategoria as scat ";
retorno = session.createQuery(consulta).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
public Short pesquisarFatorEconomiasCategoria(Integer idCategoria) throws ErroRepositorioException {
Short retorno = null;
Session session = HibernateUtil.getSession();
String consulta;
try {
consulta = "SELECT catg.fatorEconomias FROM Categoria as catg WHERE catg.id = :idCategoria";
retorno = (Short)session.createQuery(consulta).setInteger("idCategoria",idCategoria).uniqueResult();
} catch (HibernateException e) {
throw new ErroRepositorioException(e, "Erro no Hibernate");
} finally {
HibernateUtil.closeSession(session);
}
return retorno;
}
}