Spring Data JPAでクエリ結果を制限するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-28 08:21:02
オリジナル
704 人が閲覧しました

How to Limit Query Results in Spring Data JPA?

Spring Data JPA の setMaxResults のアノテーション

Spring Data JPA 1.7.0 より前のバージョンでは、制限することはできませんでしたsetMaxResults を使用して注釈付きクエリ メソッドによって返された結果の数。ただし、この機能は Spring Data JPA 1.7.0 で導入されました。

Spring Data JPA 1.7.0 の新機能

Spring Data JPA 1.7 以降.0 (Evans release train) では、新しく導入された Top キーワードと First キーワードを使用して、結果を自動的に制限するクエリ メソッドを定義できます。例:

findTop10ByLastnameOrderByFirstnameAsc(String lastname);
ログイン後にコピー

Spring Data は、結果を定義した数に自動的に制限します (省略した場合のデフォルトは 1)。ここでは、例にあるように OrderBy 句を使用するか、Sort パラメーターをメソッドに渡すことによって、結果の順序が関係することに注意してください。

Pagination in Previous Versions

Spring Data JPA 1.7.0 より前のバージョンでは、ページネーションは要求側の Pageable インターフェイスと結果側の Page 抽象化を使用して処理されました。以下に例を示します:

public interface UserRepository extends Repository<User, Long> {

  List<User> findByUsername(String username, Pageable pageable);
}
ログイン後にコピー

このインターフェースは次のように使用できます:

Pageable topTen = new PageRequest(0, 10);
List<User> result = repository.findByUsername("Matthews", topTen);
ログイン後にコピー

結果に関する詳細情報 (どのページであるか、そこに何ページあるかなど) が必要な場合合計)、戻り値の型として Page を使用します:

public interface UserRepository extends Repository<User, Long> {

  Page<User> findByUsername(String username, Pageable pageable);
}
ログイン後にコピー

これにより、実行されるクエリのカウント投影がトリガーされ、要素の合計数が決定されます。

以上がSpring Data JPAでクエリ結果を制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!