1

HQL で使用しようとしてRowNumいます。Orderby基盤となるデータベースは Oracle です。予想どおりRownum、注文前に実行されます(これは望ましくありません)。

SQL ではSubselect、from 句を使用してこれを行うことができますが、パフォーマンスに影響を与えずに HQL でこれを達成するにはどうすればよいですか。また、HQL では、from 句でサブクエリを使用できません。試した:

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

そして、パフォーマンスがひどく遅くなります。

私は Hibernate の専門家ではないので、何か抜けていたり重大なことをしている場合はご容赦ください。また、この時点では、 HQL を使用するしかありません。

4

1 に答える 1

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.

こちらのコミュニティ ドキュメントで説明されているとおりです。

于 2011-12-06T02:39:18.583 に答える