ホームページ >Java >&#&チュートリアル >JPQL および HQL でクエリ結果を制限するにはどうすればよいですか?
JPQL および HQL でのクエリの制限
JPQL または HQL では、 setMaxResults メソッド。ただし、Hibernate の古いバージョンでは、ユーザーは MySQL の LIMIT 句に似た構文を使用できました。
Hibernate の古いバージョンでの制限のサポート
Hibernate 2 では、以下を使用して制限クエリを実行できます構文:
SELECT * FROM a_table ORDER BY a_table_column DESC LIMIT 0, 20;
この構文により、ユーザーはオフセットと返す結果の最大数を指定できました。
Hibernate 3 での制限サポートの削除
ただし、Hibernate 3 の導入により、LIMIT 句は HQL でサポートされなくなりました。 Hibernate フォーラムの回答によると、この機能は HQL の一部となることを意図したものではありません。
結果の制限に setMaxResults() を使用する
数を制限するにはHibernate 3 のクエリによって返される結果のうち、ユーザーは setMaxResults を使用する必要がありますメソッド:
Query query = session.createQuery("FROM ATable ORDER BY aTableColumn DESC"); query.setMaxResults(20); List<ATable> resultList = query.list();
このメソッドは引数として整数値を受け取り、返される結果の最大数を指定します。
結論
In結論として、LIMIT 句は Hibernate 3 以降のバージョンの JPQL および HQL ではサポートされていません。代わりに、ユーザーは setMaxResults メソッドを使用して、クエリによって返される結果の数を制限する必要があります。
以上がJPQL および HQL でクエリ結果を制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。