Псевдонимы Hibernate Projection даже работают? Я могу поклясться, что просто нет. По крайней мере, он не делает то, что я ожидал.
Вот 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();
Вот SQL, который он генерирует:
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
Кажется, псевдоним вообще не используется. Я думаю, установка псевдонима будет означать, что sum(this_.number_of_points)
будет иметь псевдоним как number_of_points
, а не y0_
. Есть какой-то трюк, которого мне не хватает?
Спасибо.