在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(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中文網其他相關文章!