在HQL中使用Rownum和OrderBy

时间:2011-12-06 00:05:29

标签: hibernate sql-order-by hql rownum

我正在尝试在我的HQL中使用RowNumOrderby。底层数据库是Oracle。 正如预期的那样Rownum在订购之前执行(我不想要)。

在SQL中,可以使用from子句中的Subselect来完成,但是如何在HQL中实现此目的而不影响性能。此外,HQL不允许from子句中的子查询。 尝试:

setFirstResult(resultsetLimit)
setMaxResults(resultsetLimit)
setFetchSize(resultsetLimit) 

它的表现非常糟糕。

我不是Hibernate专家所以请原谅我是否遗漏了什么或做了什么严重的事情。 此时我别无选择,只能使用HQL。

1 个答案:

答案 0 :(得分:1)

HQL支持子选择和子查询。

For databases that support subselects, Hibernate supports subqueries within queries. A subquery must be surrounded by parentheses (often by an SQL aggregate function call). Even correlated subqueries (subqueries that refer to an alias in the outer query) are allowed.

正如社区文件here中所述。