Hql技巧积累之一:同时使用distinct和order by的问题

所用数据库:ms server2000
所用hibernate版本: hibernate3.2


sql:
--查询签约年份,不重复,年份降序显示
select distinct year(a.signDate) as signYear 
from my_table a
order by signYear desc

以上sql在查询分析器里是没有问题的。
转换成hql如下:
hql:
select distinct year(a.signDate) as signYear 
from MyTable a
order by signYear desc

以上hql在服务启动编译时通过, 单执行查询时抛出异常:列名“signYear”无效。

修改成如下hql才行:
select distinct year(a.signDate) as signYear 
from MyTable a
order by year(a.signDate) desc

以上hql对应的sql也正确。

你可能感兴趣的:(sql,Hibernate)