将sql查询上的Native distinct转换为hql

时间:2011-10-20 07:37:55

标签: java sql hibernate hql

我想将以下本机sql查询转换为hql查询。我浏览了hibernate docs,他们给出了关于具有不同对象/字段的查询的示例,但没有给出关于"不同的"用法。有人可以帮我解决这个问题。

我的SQL查询是:


 select distinct on(mr.id) mr.* 
 from rebate.mr_rebates mr 
 where mr.mr_start_date <= now()
 order by mr.id, mr.mr_start_date desc

感谢。

2 个答案:

答案 0 :(得分:0)

据我所知,它就像提到here一样简单。您可以在this page找到更多信息。

答案 1 :(得分:0)

distinct on似乎是特定于数据库的扩展,因此不是标准SQL。因此,HQL无法提供精确的等价物(如何在不支持该功能的数据库上自动转换它?)。

因此,您最好的选择可能是将查询更改为仅使用标准SQL语法。有些提示请看这里:

http://www.postgresonline.com/journal/archives/4-Using-Distinct-ON-to-return-newest-order-for-each-customer.html