ホームページ  >  記事  >  Java  >  Spring Data JPAでクエリ結果を制限するにはどうすればよいですか?

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

Barbara Streisand
Barbara Streisandオリジナル
2024-10-28 08:21:02695ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。