Funktionieren Hibernate-Projektionsalias überhaupt? Ich könnte schwören, dass es einfach nicht stimmt. Zumindest tut es nicht, was ich von ihm erwarte. HierHibernate-Kriterium Projektionsalias wird nicht verwendet
ist die 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();
Hier ist die SQL, die es erzeugt:
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
Es ist nicht das Alias scheint überhaupt zu benutzen. Ich würde denken, die Einstellung des Alias würde bedeuten, dass sum(this_.number_of_points)
Alias als number_of_points
und nicht y0_
werden würde. Gibt es einen Trick, den ich vermisse?
Danke.
+1 i als auch diese Art der Sache gesehen habe, denke ich mit Subqueries. – Justin