import org.springframework.data.domain.Page; //导入方法依赖的package包/类

@GetMapping

public ResponseEntity> getAllBooks(

@PageableDefault(size = MAX_PAGE_SIZE) Pageable pageable,

@RequestParam(required = false, defaultValue = "id") String sort,

@RequestParam(required = false, defaultValue = "asc") String order) {

final PageRequest pr = PageRequest.of(

pageable.getPageNumber(), pageable.getPageSize(),

Sort.by("asc" .equals(order) ? Sort.Direction.ASC : Sort.Direction.DESC, sort)

);

Page booksPage = bookRepository.findAll(pr);

if (booksPage.getContent().isEmpty()) {

return new ResponseEntity(HttpStatus.NO_CONTENT);

} else {

long totalBooks = booksPage.getTotalElements();

int nbPageBooks = booksPage.getNumberOfElements();

HttpHeaders headers = new HttpHeaders();

headers.add("X-Total-Count", String.valueOf(totalBooks));

if (nbPageBooks < totalBooks) {

headers.add("first", buildPageUri(PageRequest.of(0, booksPage.getSize())));

headers.add("last", buildPageUri(PageRequest.of(booksPage.getTotalPages() - 1, booksPage.getSize())));

if (booksPage.hasNext()) {

headers.add("next", buildPageUri(booksPage.nextPageable()));

}

if (booksPage.hasPrevious()) {

headers.add("prev", buildPageUri(booksPage.previousPageable()));

}

return new ResponseEntity<>(booksPage.getContent(), headers, HttpStatus.PARTIAL_CONTENT);

} else {

return new ResponseEntity(booksPage.getContent(), headers, HttpStatus.OK);

}

}

}

java hasnext_Java Page.hasNext方法代码示例相关推荐

  1. java kryo_Kryo框架使用方法代码示例

    Kryo框架的source已移至https://github.com/EsotericSoftware/kryo ,进入此页面,然后点击右边的Download Zip按钮,就能下载到最新版本的Kryo ...

  2. java readtimeout_Java HttpURLConnection.getReadTimeout方法代码示例

    import java.net.HttpURLConnection; //导入方法依赖的package包/类 /** * 得到响应对象 * * @param urlConnection * @retu ...

  3. java invalidate_Java Component.invalidate方法代码示例

    import java.awt.Component; //导入方法依赖的package包/类 /** Installs the component we will embed to display t ...

  4. java hasmoreelements_Java IOException.hasMoreElements方法代码示例

    import java.io.IOException; //导入方法依赖的package包/类 /** * fileName���� ���� package �������� ������ ���� ...

  5. java setmethod_Java Operation.setJavaMethod方法代码示例

    import com.sun.tools.internal.ws.processor.model.Operation; //导入方法依赖的package包/类 private void createJ ...

  6. java methode_Java Method.getTypeParameters方法代码示例

    import java.lang.reflect.Method; //导入方法依赖的package包/类 private void validateRuleMethod(MethodRuleDefin ...

  7. java enter_Java UI.enter方法代码示例

    import itdelatrisu.opsu.ui.UI; //导入方法依赖的package包/类 @Override public void enter(GameContainer contain ...

  8. java cancel_Java RunnableFuture.cancel方法代码示例

    import java.util.concurrent.RunnableFuture; //导入方法依赖的package包/类 @Test public void testSnapshotAsyncC ...

  9. java jobdetail_Java JobDetail.setName方法代码示例

    import org.quartz.JobDetail; //导入方法依赖的package包/类 private void scheduleJobs() throws ParseException, ...

最新文章

  1. matlab与python通信_python和matlab之间数据传输方法
  2. 如何删除输入文本元素上的边框突出显示
  3. redis stream持久化_Beetlex.Redis之Stream功能详解
  4. SQL Server中删除重复数据的2个方法
  5. 我如何使用React和Typescript在freeCodeCamp中构建天气应用
  6. 实时计算pv/uv Demo
  7. 【每日一练 085】性能优化-实例优化(四)
  8. 选择自己用的到的文件编译一个CEGUISample(一)
  9. 树莓派sd卡linux分区,树莓派安装了Kali系统的SD卡扩容问题(分区太小)解决办法...
  10. mysql sql 语法错误_执行SQL查询时出现MySQL语法错误
  11. 【Python】:数据可视化之相关系数热力图绘制(二)(seaborn版本)
  12. 春节假期收官小记|抢红包黄金时间分析
  13. Python中*与**的几种用法
  14. 什么是 Microsoft Power Platform?
  15. 基于多目标算法的冷热电联供型综合能源系统运行优化 综合能源 冷热电三联供 粒子群算法 多目标优化 多目标粒子群 冷热电联供 综合能源系统 运行优化
  16. 安装过千月(BlueSoleil)蓝牙软件后,网络图标上就一直显示红叉,但却能上网
  17. python 算法加密
  18. 元宇宙Metaverse是什么?为什么这么火爆?
  19. XML文件解析(在Windows环境MFC程序中,使用自带的MSXML6.dll解析)
  20. 图片太小了,要如何放大呢?一键放大

热门文章

  1. oracle数据库运维一般做什么,数据库运维都做些什么呢?
  2. 线段树(详细注释—pushdown写法)
  3. 使用Flash Loader(JTAG模式)下载EPCS器件
  4. HDU-1238 Substrings
  5. [矩阵论] Unit 0. 线性代数 - 部分知识点整理
  6. 10大PPT模板可直接套用助PM正确写好年终总结
  7. 《MySQL数据库用户模块需求分析》
  8. excel文件被写保护怎么解除_如何去掉Excel表格中的密码保护?
  9. 什么是MOS管驱动电路,如何理解MOS管驱动电路原理?
  10. 打造金融科技新生态,巨杉数据库与宇信科技完成产品兼容互认证