最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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: 可用項(xiàng)的總數(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)文章

  • Java異常處理機(jī)制深入理解

    Java異常處理機(jī)制深入理解

    如果某個方法不能按照正常的途徑完成任務(wù),就可以通過另一種路徑退出方法。在這種情況下會拋出一個封裝了錯誤信息的對象。此時,這個方法會立刻退出同時不返回任何值。另外,調(diào)用這個方法的其他代碼也無法繼續(xù)執(zhí)行,異常處理機(jī)制會將代碼執(zhí)行交給異常處理器
    2022-01-01
  • JVM自定義類加載器在代碼擴(kuò)展性實(shí)踐分享

    JVM自定義類加載器在代碼擴(kuò)展性實(shí)踐分享

    這篇文章主要介紹了JVM自定義類加載器在代碼擴(kuò)展性實(shí)踐分享,一個類型從被加載到虛擬機(jī)內(nèi)存中開始,到卸載出內(nèi)存為止,它的整個生命周期將會經(jīng)歷加載、驗(yàn)證、準(zhǔn)備、解析、初始化 、使用和卸載七個階段,其中驗(yàn)證、準(zhǔn)備、解析三個部分統(tǒng)稱為連接
    2022-06-06
  • SpringBoot3配置Logback日志滾動文件的方法

    SpringBoot3配置Logback日志滾動文件的方法

    本文介紹了在SpringBoot3中配置Logback日志滾動文件的方法,因?yàn)镾pringBoot3內(nèi)置的logback版本是1.4.14,之前使用SpringBoot2.1.5的logback配置發(fā)現(xiàn)有些東西不能生效了,需要的朋友可以參考下
    2024-08-08
  • idea右鍵沒有java class選項(xiàng)問題解決方案

    idea右鍵沒有java class選項(xiàng)問題解決方案

    這篇文章主要介紹了idea右鍵沒有java class選項(xiàng)問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • 淺談String、StringBuffer和StringBuilder之間的區(qū)別

    淺談String、StringBuffer和StringBuilder之間的區(qū)別

    這篇文章主要介紹了淺談String、StringBuffer和StringBuilder之間的區(qū)別,通過字面量方式為字符串賦值時,此時的字符串存儲在方法區(qū)的字符串常量池中,需要的朋友可以參考下
    2023-10-10
  • 淺談java中字符串?dāng)?shù)組、字符串、整形之間的轉(zhuǎn)換

    淺談java中字符串?dāng)?shù)組、字符串、整形之間的轉(zhuǎn)換

    這篇文章主要介紹了淺談java中字符串?dāng)?shù)組、字符串、整形之間的轉(zhuǎn)換,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • java輸入時如何通過回車(enter)來結(jié)束輸入

    java輸入時如何通過回車(enter)來結(jié)束輸入

    這篇文章主要介紹了java輸入時如何通過回車(enter)來結(jié)束輸入,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Spring中ClassPath指的是哪些地方

    Spring中ClassPath指的是哪些地方

    在Spring應(yīng)用中,ClassPath指的是應(yīng)用程序的類加載路徑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Java訪問修飾符public、private、protected及默認(rèn)訪問權(quán)限詳解

    Java訪問修飾符public、private、protected及默認(rèn)訪問權(quán)限詳解

    這篇文章主要介紹了Java訪問修飾符public、private、protected及默認(rèn)訪問權(quán)限的相關(guān)資料,每種修飾符都有其特定的使用場景,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • 微服務(wù)之間如何通過feign調(diào)用接口上傳文件

    微服務(wù)之間如何通過feign調(diào)用接口上傳文件

    這篇文章主要介紹了微服務(wù)之間如何通過feign調(diào)用接口上傳文件的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

荆门市| 阳新县| 甘肃省| 会宁县| 远安县| 富平县| 尚义县| 海城市| 左云县| 赤城县| 明星| 苏尼特左旗| 洪江市| 桂平市| 章丘市| 昭平县| 烟台市| 文成县| 新巴尔虎右旗| 志丹县| 湘乡市| 开原市| 延川县| 老河口市| 东平县| 垣曲县| 峨眉山市| 漳浦县| 收藏| 汝城县| 景谷| 石城县| 顺义区| 鄯善县| 中牟县| 门头沟区| 信阳市| 民丰县| 桦川县| 荥经县| 和平区|