1. 程式人生 > >Spring Boot GraphQL 實戰 03_分頁、全域性異常處理和非同步載入

Spring Boot GraphQL 實戰 03_分頁、全域性異常處理和非同步載入

> hello,大家好,我是小黑,又和大家見面啦~ > > 今天我們來繼續學習 Spring Boot GraphQL 實戰,我們使用的框架是 https://github.com/graphql-java-kickstart/graphql-spring-boot > > 本期,我們將使用 H2 和 Spring Data JPA 來構建資料庫和簡單的查詢,不熟悉的同學可以自行去網上查閱相關資料學習。 > > 完整專案 github 地址:https://github.com/shenjianeng/graphql-spring-boot-example ## 分頁查詢 ### 基於偏移量的分頁 基於偏移量的分頁,即通過 SQL 的 limit 來實現分頁。 優點是實現簡單,使用成本低。缺點是在資料量過大時,進行大翻頁時可能會有效能問題。 先來編寫 `graphqls` 檔案: ```graphqls type PageResult{ items:[Student]! pageNo:Int! pageSize:Int! totalCount:Int! } type Student{ id:ID! name:String! } type Query{ findAll(pageNo:Int!,pageSize:Int!):PageResult! } ``` 對應的 Java Bean 就不在這裡贅述了,讀者感興趣的話可以自行查詢小黑同學上傳在 github 上的原始碼。 其中,最主要的 `StudentGraphQLQueryResolver ` 原始碼如下: ```java @Component @RequiredArgsConstructor public class StudentGraphQLQueryResolver implements GraphQLQueryResolver { private final StudentRepository studentRepository; public Pa