当前位置: 首页 > news >正文

Spring Data JAP中Pageable对象如何从1开始分页,而不是从0开始

概述

在Spring Data JPA中,Pageable 的分页默认是从0开始的,即第一页的页码是0。

1. 自定义工具方法

你可以创建一个工具方法,将前端传递的页码(从1开始)转换为Spring Data JPA需要的页码(从0开始)。

public class PageableUtils {public static Pageable createPageRequest(int page, int size, Sort sort) {// 将页码从1开始转换为从0开始return PageRequest.of(page - 1, size, sort);}public static Pageable createPageRequest(int page, int size) {// 将页码从1开始转换为从0开始return PageRequest.of(page - 1, size);}
}

在服务层调用时:

public Page<MyEntity> getEntities(int page, int size) {Pageable pageable = PageableUtils.createPageRequest(page, size);return myRepository.findAll(pageable);
}

2. 在Controller中处理

你也可以在Controller层处理页码的转换:

@GetMapping("/entities")
public Page<MyEntity> getEntities(@RequestParam int page, @RequestParam int size) {// 将页码从1开始转换为从0开始Pageable pageable = PageRequest.of(page - 1, size);return myService.getEntities(pageable);
}

3. 自定义Pageable解析器

如果你希望全局处理页码的转换,可以自定义一个Pageable解析器。

@Configuration
public class CustomPageableConfiguration extends WebMvcConfigurationSupport {@Overrideprotected void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver() {@Overridepublic Pageable resolveArgument(MethodParameter methodParameter, ModelAndViewContainer mavContainer,NativeWebRequest webRequest, WebDataBinderFactory binderFactory) {Pageable pageable = super.resolveArgument(methodParameter, mavContainer, webRequest, binderFactory);// 将页码从1开始转换为从0开始return PageRequest.of(pageable.getPageNumber() - 1, pageable.getPageSize(), pageable.getSort());}};argumentResolvers.add(resolver);}
}

总结

虽然Spring Data JPA默认从0开始分页,但通过上述方法可以轻松实现从1开始分页的需求。选择哪种方式取决于你的具体场景和偏好。

http://www.dtcms.com/a/607055.html

相关文章:

  • 勇闯前后端:Java 基础语法 + ATM 同步实现
  • 城市建设网站鹤岗市云集网站哪个公司做的
  • 为什么用wp做网站健身会所网站模板
  • 不同架构下readdir() 返回值中 struct dirent.d_type 的取值差异与解决方法
  • 衡水做网站建设公司网站建设发展趋势
  • 2025 济南专业化科技孵化器申报攻略:中承信安专业测试服务助力企业通关
  • 浙江省建设协会网站首页济南网络推广seo
  • linux系统学习(11、shell编程)
  • SAP FICO应付暂估款账龄分析表
  • 牡丹园网站建设p2p网站开发维护
  • 做网站系统学校淮滨网站建设
  • wordpress模版做网站宁波网络营销服务
  • C语言编译器哪个好学 | 学习C语言编译器的入门指南与推荐
  • 【036】阳乐音乐厅购票平台
  • Katalon Studio 最佳实践:提升自动化测试效率的实用指南
  • Vue项目实战《尚医通》,登录模块表单自定义校验规则,笔记29
  • 数据分析笔记05:区间估计
  • sdcms网站建设模板wordpress添加新建标签页
  • 酥糖的网站建设的目的是什么样本代替做网站
  • 做外贸网站平台有哪些内容海口网微博
  • 学校网站平台建设方案138企业邮箱登录
  • 提供网站建设方案ppt263网站建设怎么样
  • 购物网站图片的放大怎么做的信宜网站建设
  • 更合网站设计动漫网站开发与建设
  • 苏州外贸企业网站建设网站标题改不了
  • 使用 Redis 实现高并发天气查询的优化方案
  • Android HWUI绘制流程
  • 企业首次建设网站的策划流程最热门的短期培训课程
  • 地方做什么网站手机网站 代码
  • libfvad 库详解:原理、使用方法与实践案例