Hibernate HQL сбой при заказе псевдонима - PullRequest
2 голосов
/ 13 мая 2011

У меня есть этот запрос в hql:

select sum(settledPricePerDownloadExpense),avg(settledPricePerDownloadExpense),sum(siteIdCount) as ct,sum(settledPricePerDownloadExpense) 
from PpdCampaignReporting  where id.ppdCampaignReportDate between 'Wed May 11 00:00:00 EDT 2011' and 'Thu May 12 23:59:59 EDT 2011' And id.ppdCampaignActionTypeId in (1, 2, 3) And id.ppdCampaign.ppdCampaignId in (62,63,82,83,84,95,97) 
group by id.ppdCampaignActionTypeId,id.siteId order by ct

Я получаю сообщение об ошибке:

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid column name 'ct'.

Что я не понимаю, так как у меня есть сумма (siteIdCount)как кт

1 Ответ

5 голосов
/ 13 мая 2011

Упорядочивание по псевдониму, определенному в предложении select, является известной ошибкой в ​​Hibernate. Это было исправлено в ветке 3.6.x, поэтому убедитесь, что вы используете последнюю производственную версию.

Имейте в виду, однако, что были внесены несовместимые изменения, внесенные в отношении 3.5 и более ранних версий (работа с типами пользователей и лобсами - это две основные области), поэтому вам следует быть осторожным при обновлении.

В качестве альтернативы, вы можете либо использовать «упорядочить по 1» (если ваша СУБД поддерживает его; я не уверен насчет SQL Server), либо упорядочить по expression (например, order by sum(siteIdCount) в вашем случае).

P.S. Группа по псевдониму все еще не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...