我在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
答案 0 :(得分:5)
在select子句中定义的别名排序是Hibernate中的一个已知错误。它已在3.6.x分支中修复,因此请确保您使用的是最新的产品版本。
请注意,对于3.5版本和早期版本进行了不兼容的更改(处理用户类型和lobs是两个主要方面),因此升级时需要小心。
或者,您可以使用“order by 1”(如果您的RDBMS支持它;我不确定SQL Server)或按expression
排序(例如order by sum(siteIdCount)
)。
P.S。别名分组仍然破碎。