ホームページ >Java >&#&チュートリアル >Spring Data JPAでクエリ結果を制限するにはどうすればよいですか?
Spring Data JPA 1.7.0 より前のバージョンでは、制限することはできませんでしたsetMaxResults を使用して注釈付きクエリ メソッドによって返された結果の数。ただし、この機能は 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 パラメーターをメソッドに渡すことによって、結果の順序が関係することに注意してください。
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 サイトの他の関連記事を参照してください。