Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将sql查询上的本机distinct转换为hql_Java_Sql_Hibernate_Hql - Fatal编程技术网

Java 将sql查询上的本机distinct转换为hql

Java 将sql查询上的本机distinct转换为hql,java,sql,hibernate,hql,Java,Sql,Hibernate,Hql,我想将以下本机sql查询转换为hql查询。我浏览了hibernate文档,他们给出了关于具有不同对象/字段的查询的示例,但没有给出关于“distinct on”用法的示例。有人能帮我解决这个问题吗 我的sql查询是: 在(mr.id)mr上选择distinct。* 从回扣。先生回扣先生 就我所知,mr_先生的起始日期是这么简单的。您可以在中找到更多信息。嗯,上的distinct似乎是一个特定于数据库的扩展,因此不是标准的SQL。正因为如此,HQL无法提供完全相同的功能(在不支持该功能的数据库上

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

我的sql查询是:


在(mr.id)mr上选择distinct。*
从回扣。先生回扣先生

就我所知,mr_先生的起始日期是这么简单的。您可以在中找到更多信息。

嗯,
上的distinct似乎是一个特定于数据库的扩展,因此不是标准的SQL。正因为如此,HQL无法提供完全相同的功能(在不支持该功能的数据库上,您如何自动转换该功能?)

因此,最好的选择可能是将查询更改为仅使用标准SQL语法。有关一些提示,请参见此处:


你好,伊万东根,谢谢你的回复。事实上,您给出的示例是用于获取不同的对象,但这里的问题是基于不同的字段获取对象。第一个链接是关于不同的列,但可能这不是您想要的。嗨,托马斯,谢谢您的回答。是的,我正在继续使用hibernate原生sql来解决这个问题。但我只想知道,如果在hibernate中使用本机sql而不是hql,性能会下降多少。
 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