¿Los alias de proyección de Hibernate funcionan? Podría jurar que simplemente no. Al menos, no hace lo que esperaría que hiciera.Criterio de hibernación Alias de proyección no se usa
Aquí es el java:
return sessionFactory.getCurrentSession()
.createCriteria(PersonProgramActivity.class)
.setProjection(Projections.projectionList()
.add(Projections.alias(Projections.sum("numberOfPoints"), "number_of_points"))
.add(Projections.groupProperty("person.id")))
.setFirstResult(start)
.setFetchSize(size)
.addOrder(Order.desc("numberOfPoints"))
.list();
Aquí es el SQL que se genera:
select
sum(this_.number_of_points) as y0_,
this_.person_id as y1_
from
PERSON_PROGRAM_ACTIVITY this_
group by
this_.person_id
order by
this_.number_of_points desc
No parece usar el alias en absoluto. Creo que configurar el alias significaría que sum(this_.number_of_points)
se alias como number_of_points
y no y0_
. ¿Hay algún truco que me falta?
Gracias.
+1 que he visto este tipo de cosas así, creo que con subconsultas. – Justin