Operaciones con Having count en criteria
Hola que tal,
Me encuentro realizando algunas querys con Criteria de Hibernate sin embargo acudo a ustedes porque he buscado en google pero no encuentro la manera de realizar esto con criteria:
donde espero me devuelva algo como:
------------- -------------
9 4
22 4
36 4
56 5
donde la primer columna es el numero del empleado, y la segunda es el numero de veces que se repite ese numero en dicha tabla.
googleando encontre lo siguiente: https://hibernate.onjira.com/browse/HHH-1700
al correr mis metodos y ver el sql que tira hibernate me sale algo muy parecido al codigo anterior:
select
first 10 numero_empleado
from
prestamo this_
group by
numero_empleado
having
count(numero_empleado) > 2
pero antes de que devuelva los resultados me envia el siguiente error:
at org.hibernate.loader.criteria.CriteriaLoader.getResultColumnOrRow(CriteriaLoader.java:107)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:606)
at org.hibernate.loader.Loader.doQuery(Loader.java:701)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2217)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2108)
at org.hibernate.loader.Loader.list(Loader.java:2103)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1570)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at mx.com.robertoleon.cambioestatus.dao.CambioEstatusDAOImpl.getPrestamosOriginales(CambioEstatusDAOImpl.java:52)
el metodo del DAO es el siguiente:
session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
System.out.println("En el dado antes de hacer la petición");
Criteria criteria = session.createCriteria(PrstamoOrigEntity.class);
criteria.setProjection(CustomProjections.groupByHaving("numero_empleado", Hibernate.LONG, "count(numero_empleado) > 2")) ;
criteria.setMaxResults(10);
List<PrstamoOrigEntity> listaTodosLosUsuariosActivos = criteria.list(); //<--- esta es la linea donde envia el error
HibernateUtil.getSessionFactory().getCurrentSession().close();
return listaTodosLosUsuariosActivos;
}
Agradesco de antemano su ayuda, como nota, no es necesario que use esta clase, si tienen sugerencias son muy bienvenidas.
- Inicie sesión o regístrese para enviar comentarios
Hola, pudiste resolverlo
Hola, pudiste resolverlo ?
Estoy usando la misma libreria, y cuandos acoe esa linea de CustomProjections cancela ??
Saludos Nicolas