首頁 > Java > java教程 > 如何在 Spring Data JPA 中使用註解限制查詢結果?

如何在 Spring Data JPA 中使用註解限制查詢結果?

DDD
發布: 2024-11-04 03:08:30
原創
939 人瀏覽過

How to Limit Query Results with Annotations in Spring Data JPA?

Spring-Data-JPA的setMaxResults註解

Spring-Data-JPA,一個強大的JPA儲存庫抽象化庫,簡化了Spring中的資料存取基於Java的應用程式。然而,使用註解設定查詢傳回的最大結果數一直是個挑戰。

Spring Data JPA 1.7.0 (Evans Release Train) 解決方案

中Spring Data JPA 1.7.0 及更高版本中,情況有所改善。現在您可以使用 Top 和 First 關鍵字來限制查詢結果。例如:

findTop10ByLastnameOrderByFirstnameAsc(String lastname);
登入後複製

Spring Data 會自動將回傳結果的數量限制為指定數量(如果省略,則預設為 1)。結果的排序變得至關重要,無論是透過 OrderBy 子句還是方法中的 Sort 參數。

在 Spring Data JPA 1.7.0 之前

在此增強之前,檢索資料切片需要使用分頁。 Spring Data 使用 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);
}
登入後複製

客戶端程式碼可以利用此資訊:

Pageable topTen = new PageRequest(0, 10);
Page<User> result = repository.findByUsername("Matthews", topTen);
Assert.assertThat(result.isFirstPage(), is(true));
登入後複製

使用Page 作為返回type 觸發計數投影查詢執行以確定元素的總數。此外,為了確保穩定的結果,請務必在 PageRequest 中包含排序資訊。

以上是如何在 Spring Data JPA 中使用註解限制查詢結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板