Hibernate HQL在别名排序方面失败了

时间:2011-05-13 15:08:38

标签: hibernate

我在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'.

我不明白,因为我将sum(siteIdCount)作为ct

1 个答案:

答案 0 :(得分:5)

在select子句中定义的别名排序是Hibernate中的一个已知错误。它已在3.6.x分支中修复,因此请确保您使用的是最新的产品版本。

请注意,对于3.5版本和早期版本进行了不兼容的更改(处理用户类型和lobs是两个主要方面),因此升级时需要小心。

或者,您可以使用“order by 1”(如果您的RDBMS支持它;我不确定SQL Server)或按expression排序(例如order by sum(siteIdCount))。

P.S。别名分组仍然破碎。