1. 程式人生 > 其它 >JPA的分頁技術實現:Page與Pageable

JPA的分頁技術實現:Page與Pageable

技術標籤:springbootspringjavaspring

例子
在這裡插入圖片描述
1.設定倒排序

Sort sort = new Sort(Sort.Direction.DESC, "id");

2.根據start,size和sort建立分頁物件

Pageable pageable = new PageRequest(start, size, sort);

3.CategoryDAO根據這個分頁物件獲取結果page.

Page<Category> page =categoryDAO.findAll(pageable);

Pageable 是Spring Data庫中定義的一個介面,該介面是所有分頁相關資訊的一個抽象,通過該介面,我們可以得到和分頁相關所有資訊(例如pageNumber、pageSize等),這樣,Jpa就能夠通過pageable引數來得到一個帶分頁資訊的Sql語句。

Pageable定義了很多方法,但其核心的資訊只有兩個:

一是分頁的資訊(page、size)
二是排序的資訊。Spring Data Jpa提供了PageRequest的具體實現

Page 介面如下:

public interface Page<T> extends Iterable<T> {
 
    int getNumber();			//當前第幾頁   返回當前頁的數目。總是非負的
 
    int getSize();				//返回當前頁面的大小。包括表頭資訊之類
 
    int getTotalPages();         //返回分頁總數。
 
    int getNumberOfElements(
); //返回當前頁上的元素數。 long getTotalElements(); //返回元素總數。 boolean hasPreviousPage(); //返回如果有上一頁。 boolean isFirstPage(); //返回當前頁是否為第一頁。 boolean hasNextPage(); //返回如果有下一頁。 boolean isLastPage(); //返回當前頁是否為最後一頁。 Iterator<T> iterator(); List<T> getContent(
); //將所有資料返回為List boolean hasContent(); //返回資料是否有內容。 Sort getSort(); //返回頁的排序引數。 }