将 sql 查询上的本机不同值转换为 hql
我想将以下本机 sql 查询转换为 hql 查询。我浏览了 hibernate 文档,他们给出了有关具有不同对象/字段的查询的示例,但没有给出有关“不同”用法的示例。有人可以帮我解决这个问题吗?
我的 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
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
那么
distinct on
似乎是数据库特定的扩展,因此不是标准 SQL。因此,HQL 无法提供精确的等效项(如何在不支持该功能的数据库上自动转换它?)。因此,最好的选择可能是将查询更改为仅使用标准 SQL 语法。有关一些提示,请查看此处:
http://www.postgresonline.com/journal/archives/4-Using-Distinct-ON-to-return-newest-order-for-each-customer.html
Well
distinct on
seems to be a database specific extension and thus is not standard SQL. Because of this, HQL can't provide an exact equivalent (how would you automatically translate that on databases that don't support that feature?).So, your best bet might be to change your query to use standard SQL syntax only. For some hints have a look here:
http://www.postgresonline.com/journal/archives/4-Using-Distinct-ON-to-return-newest-order-for-each-customer.html
据我所知,这就像此处提到的那样简单。您可以在此页面找到更多信息。
As far as I know it's as simple as mentioned here. You can find more information at this page.