首頁  >  文章  >  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 的註解

在1.7.0 之前的Spring Data JPA 版本中,無法限制使用setMax🎜>在1.7.0 之前的Spring Data JPA 版本中,無法限制使用setMaxsults 的帶註釋的查詢方法傳回的結果數。不過,此功能已在 Spring Data JPA 1.7.0 中引入。

Spring Data JPA 1.7.0 中的新功能

自Spring Data JPA 1.7 起.0(Evans發布列車),可以使用新引入的Top和First關鍵字來定義自動限制結果的查詢方法。例如:

findTop10ByLastnameOrderByFirstnameAsc(String lastname);

Spring Data 會自動將結果限制為您定義的數量(如果省略,則預設為 1)。請注意,結果的排序在這裡變得相關,可以透過範例中所示的 OrderBy 子句,也可以透過將 Sort 參數傳遞給方法。

先前版本中的分頁

在1.7.0 之前的Spring Data JPA 版本中,分頁是使用請求端的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn