欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring-boot List轉(zhuǎn)Page的方法步驟

 更新時間:2019年03月01日 14:35:43   作者:陳杰  
這篇文章主要介紹了spring-boot List轉(zhuǎn)Page的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

需求:班級與教師是多對多關(guān)系,在后臺班級管理需要添加一個接口,傳入教師的id和pageable,返回帶分頁數(shù)據(jù)的班級信息。

Page<Klass> pageByTeacher(Long teacherId, Pageable pageable);

一開始打算是在KlassRepository(繼承自PagingAndSortingRepository)中添加一個類似findByElementId的接口,然后直接返回帶分頁的數(shù)據(jù)。但是試了幾次并不成功,無論是把teacher還是將帶teacher的List傳入方法中都失敗。

換了一種思路,直接調(diào)TeacherRepository的FindById()方法找到teacher,然后返回teacher的成員klassList就行了。

  Teacher teacher = teacherRepository.findById(teacherId).get();
  List<Klass> klassList = teacher.getKlassList();

但是光返回klassList還不行,需要將它包裝成Page才行,去官網(wǎng)上查到了一種使用List構(gòu)造Page的方法

PageImpl
public PageImpl(List<T> content,
Pageable pageable,
long total)
Constructor of PageImpl.
Parameters:
content - the content of this page, must not be null.
pageable - the paging information, must not be null.
total - the total amount of items available. The total might be adapted considering the length of the content given, if it is going to be the content of the last page. This is in place to mitigate inconsistencies.

參數(shù):

  • content: 要傳的List,不為空
  • pageable: 分頁信息,不為空
  • total: 可用項的總數(shù)。如果是最后一頁,考慮到給定內(nèi)容的長度,total可以被調(diào)整。這是為了緩解不一致性。(這句沒懂什么意思),可選

一開始還以為它會自己按照傳入的參數(shù)分割List

Page<Klass> klassPage = new PageImpl<Klass>(klassList, pageable, klassList.size());

結(jié)果debug發(fā)現(xiàn)不行,得手動分割,就去網(wǎng)上參考了別人的寫法

 // 當(dāng)前頁第一條數(shù)據(jù)在List中的位置
  int start = (int)pageable.getOffset();
  // 當(dāng)前頁最后一條數(shù)據(jù)在List中的位置  
  int end = (start + pageable.getPageSize()) > klassList.size() ? klassList.size() : ( start + pageable.getPageSize());
  // 配置分頁數(shù)據(jù)
  Page<Klass> klassPage = new PageImpl<Klass>(klassList.subList(start, end), pageable, klassList.size());

debug查看結(jié)果


最后為了增加復(fù)用性,改成范型方法:

  public <T> Page<T> listConvertToPage(List<T> list, Pageable pageable) {
  int start = (int)pageable.getOffset();
  int end = (start + pageable.getPageSize()) > list.size() ? list.size() : ( start + pageable.getPageSize());
  return new PageImpl<T>(list.subList(start, end), pageable, list.size());
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JMS 之 Active MQ 的消息傳輸(詳解)

    JMS 之 Active MQ 的消息傳輸(詳解)

    下面小編就為大家?guī)硪黄狫MS 之 Active MQ 的消息傳輸(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 分享關(guān)于JAVA 中使用Preferences讀寫注冊表時要注意的地方

    分享關(guān)于JAVA 中使用Preferences讀寫注冊表時要注意的地方

    這篇文章介紹了關(guān)于JAVA 中使用Preferences讀寫注冊表時要注意的地方,有需要的朋友可以參考一下
    2013-08-08
  • Mybatis 簡介與原理

    Mybatis 簡介與原理

    MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的持久層框架。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設(shè)置參數(shù)以及獲取結(jié)果集
    2017-05-05
  • 淺談java的byte數(shù)組的不同寫法

    淺談java的byte數(shù)組的不同寫法

    下面小編就為大家?guī)硪黄獪\談java的byte數(shù)組的不同寫法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • Java最簡潔數(shù)據(jù)結(jié)構(gòu)之冒泡排序快速理解

    Java最簡潔數(shù)據(jù)結(jié)構(gòu)之冒泡排序快速理解

    冒泡排序是編程中數(shù)據(jù)結(jié)構(gòu)繞不過的一個基礎(chǔ)點(diǎn),有關(guān)于冒泡排序的文章也有很多,但可能會比較繚亂未能理解,本章將一子u為簡潔明了的例圖帶你通關(guān)冒泡排序
    2021-11-11
  • MyBatis-Plus插件機(jī)制及通用Service新功能

    MyBatis-Plus插件機(jī)制及通用Service新功能

    這篇文章主要介紹了MyBatis-Plus插件機(jī)制以及通用Service、新功能,本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 使用Gradle打依賴包失敗的問題及解決

    使用Gradle打依賴包失敗的問題及解決

    這篇文章主要介紹了使用Gradle打依賴包失敗的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 詳解Java中Optional類的使用方法

    詳解Java中Optional類的使用方法

    Optional的作用是什么?他都有哪些方法?阿里規(guī)范點(diǎn)名說盡量用Optional來避免空指針,那么什么場景用Optional?本篇文章圍繞這三點(diǎn)來進(jìn)行講解,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • springmvc字符編碼過濾器CharacterEncodingFilter的使用

    springmvc字符編碼過濾器CharacterEncodingFilter的使用

    這篇文章主要介紹了springmvc字符編碼過濾器CharacterEncodingFilter的使用,具有很好的參考價值,希望對大家有所幫助。
    2021-08-08
  • Java鏈表數(shù)據(jù)結(jié)構(gòu)及其簡單使用方法解析

    Java鏈表數(shù)據(jù)結(jié)構(gòu)及其簡單使用方法解析

    這篇文章主要介紹了Java鏈表數(shù)據(jù)結(jié)構(gòu)及其簡單使用方法解析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07

最新評論