1. 程式人生 > >Spring MVC通過Pageable對象和PageableDefault註解獲取分頁信息(MongoDB通過Pageable來操作分頁)

Spring MVC通過Pageable對象和PageableDefault註解獲取分頁信息(MongoDB通過Pageable來操作分頁)

組織 nbsp dal ref 註解 tro urn dir 個性

說明:Pageable同時也能用於操作MongoDB的分頁。

PageableSpring Data庫中定義的一個接口,該接口是所有分頁相關信息的一個抽象,通過該接口,我們可以得到和分頁相關所有信息(例如pageNumber、pageSize等)。

Pageable定義了很多方法,但其核心的信息只有兩個:一是分頁的信息(page、size),二是排序的信息。

在Spring MVC的請求中只需要在方法的參數中直接定義一個Pageable類型的參數,當Spring發現這個參數時,Spring會自動的根據request的參數來組裝該Pageable對象,Spring支持的Request參數如下:

page,第幾頁,從0開始,默認為第0頁  
size,每一頁的大小,默認為20  
sort,排序相關的信息,以property,property(ASC|DESC)的方式組織,例如sort=firstname&sort=lastname,desc表示在按firstname正序排列基礎上按lastname倒序排列。   

這樣,我們就可以通過url的參數來進行多樣化、個性化的查詢。

Spring Data提供了@PageableDefault幫助我們個性化的設置Pageable的默認配置。例如@PageableDefault(value = 15, sort = { "id" }, direction = Sort.Direction.DESC)

表示默認情況下我們按照id倒序排列,每一頁的大小為15。

@ResponseBody  
@RequestMapping(value = "list", method=RequestMethod.GET)  
public Page<blog> listByPageable(@PageableDefault(value = 15, sort = { "id" }, direction = Sort.Direction.DESC) Pageable pageable) {  
    return blogRepository.findAll(pageable);  
}  

參考:

http://blog.csdn.net/qq_30553235/article/details/76070541(MongoDB)

http://blog.csdn.net/zsg88/article/details/66025560(以上內容轉自此篇文章)

Spring MVC通過Pageable對象和PageableDefault註解獲取分頁信息(MongoDB通過Pageable來操作分頁)