首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Springboot JPA无法分页,因为页码大于0

Spring Boot是一个开源的Java开发框架,它简化了基于Spring的应用程序的开发过程。JPA(Java Persistence API)是Java持久化规范,它提供了一种方便的方式来访问和管理数据库。

在Spring Boot中使用JPA进行分页查询时,如果页码大于0,可能会出现无法分页的情况。这通常是由于以下原因导致的:

  1. 错误的页码计算:在进行分页查询时,页码是从0开始计算的,而不是从1开始。因此,如果页码大于0,会导致查询结果为空。

解决方法:

确保正确计算页码,将页码减1后再进行查询。

示例代码:

代码语言:java
复制
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

// 创建分页请求对象
int pageNumber = 1; // 页码减1
int pageSize = 10; // 每页记录数
Sort sort = Sort.by(Sort.Direction.DESC, "id"); // 排序方式
Pageable pageable = PageRequest.of(pageNumber, pageSize, sort);

// 执行分页查询
Page<User> userPage = userRepository.findAll(pageable);

// 获取查询结果
List<User> userList = userPage.getContent();
  1. 未正确配置分页支持:在Spring Boot中,需要在应用程序的配置文件中配置分页支持。如果未正确配置,可能导致无法分页。

解决方法:

在application.properties或application.yml配置文件中添加以下配置:

application.properties:

代码语言:txt
复制
spring.data.jpa.repositories.enabled=true
spring.data.web.pageable.enabled=true
spring.data.web.pageable.default-page-size=10
spring.data.web.pageable.max-page-size=100

application.yml:

代码语言:yaml
复制
spring:
  data:
    jpa:
      repositories:
        enabled: true
    web:
      pageable:
        enabled: true
        default-page-size: 10
        max-page-size: 100

以上配置启用了JPA仓库和分页支持,并设置了默认的每页记录数为10,最大每页记录数为100。

总结:

Spring Boot与JPA结合使用时,需要注意正确计算页码和配置分页支持。通过以上方法,可以解决Spring Boot JPA无法分页的问题。

腾讯云相关产品推荐:

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用SpringData JPA 实现分页

之前我写过两篇SpringData JPA搭建的文章,但没写过分页(前两篇) 带你搭一个SpringBoot+SpringData JPA的Demo 【极简版】SpringBoot+SpringData...JPA 管理系统 使用SpringData JPA 实现分页 环境: Eclipse Mars.2 + JDK 1.8 + Gradle 3.5 + thymeleaf 3 首先我们前台html把分页菜单导航栏弄出来...å分页接口1 它继承了CrudRepository接口,所以他有基本JPA的方法,例如,增,删,改,查方法。...展示页长度大于最大页码(这种更符合显示,大量的数据才需要分页) 还是展示页长度为5,我有100条数据,每页展示3条,最大的页码为34,那么展示页就不固定,如果当前页为3用户点击下一页,展示页应该就是4,...(当前页码/每页显示数量+1)x每页显示数量-1:总页码-1; 这个就需要分2种情况了,1> 总页码小于展示页,那就取最大的页码; 2>总页码大于展示页,那就取下一页,然后加一个展示页减 1(因为页码

2.9K10

springboot整合mybatis分页插件PageHelper实战

true #支持通过 Mapper 接口参数来传递分页参数,默认值 false reasonable: true #分页合理化参数,默认值为 false,页码不为负,不超总页码 logging: #打印...pageSizeZero :默认值为 false ,当该参数设置为 true 时,如果 pageSize=0 或者 RowBounds.limit =0 就会查询出全部的结果(相当于没有执行分页查询,但是返回结果仍然是...,从而避免因为替换ORM框架而导致服务层、控制层的分页接口也需要变动的情况,替换ORM框架也不会影响服务层以上的分页接口,起到了解耦的作用。...,避免直接引入具体框架的分页对象, 如MyBatis或JPA分页对象 * 从而避免因为替换ORM框架而导致服务层、控制层的分页接口也需要变动的情况,替换ORM框架也不会 * 影响服务层以上的分页接口,...起到了解耦的作用 * 返回值:PageInfo(官方封装好的分页返回信息类) */ //分页参数这里必须带(因为前端一定会传递分页的两个参数的),分页的本质就是在server层进行包装和执行 public

1.4K30
  • 第十三章:SpringBoot实战SpringDataJPA构建项目总结

    JPA依赖,我们简单使用一个RestController来实现JPA的配置,之前也有讲解JPA的简单使用,今天详细的讲解下具体的细节性的内容,项目结构如下图1所示: ?...因为它是这个的强大!...下面我们打开UserJPA接口,添加自定义查询年龄大于20的数据,如下图18所示: ?...一般情况我们会创建一个BaseEntity,在BaseEntity内添加几个字段:排序列,排序方式,当前页码,每页条数等,下面我们也来创建这么一个父类,代码如下图27所示: ?...本章主要讲解了SpringBoot项目中使用SpringDataJPA的基本操作,包括了:CURD、分页、排序、自定义SQL、定义BaseRepository、事务处理等。

    2.4K30

    Spring Boot2 系列教程(三十一)Spring Boot 构建 RESTful 风格应用

    这两段配置是关于 MySQL + JPA 的配置,没用过 JPA 的小伙伴可以参考松哥之前的 JPA 文章:http://www.javaboy.org/2019/0407/springboot-jpa.html...分页数据中: size 表示每页查询记录数 totalElements 表示总记录数 totalPages 表示总页数 number 表示当前页数,从0开始计 如果要分页或者排序查询,可以使用 _links...查询定制 最广泛的定制,就是查询,因为增删改操作的变化不像查询这么丰富。对于查询的定制,非常容易,只需要提供相关的方法即可。...true spring.data.rest.return-body-on-create=true 配置含义,从上往下,依次是: 给所有的接口添加统一的前缀 配置排序参数的 key ,默认是 sort 配置分页查询时页码的...key,默认是 page 配置分页查询时每页查询页数的 key,默认是size 配置每页最大查询记录数,默认是 20 条 分页查询时默认的页码 更新成功时是否返回更新记录 添加成功时是否返回添加记录

    97510

    Spring Boot 中 10 行代码构建 RESTful 风格应用

    这两段配置是关于 MySQL + JPA 的配置,没用过 JPA 的小伙伴可以参考松哥之前的 JPA 文章:http://www.javaboy.org/2019/0407/springboot-jpa.html...分页数据中: size 表示每页查询记录数 totalElements 表示总记录数 totalPages 表示总页数 number 表示当前页数,从0开始计 如果要分页或者排序查询,可以使用 _links...查询定制 最广泛的定制,就是查询,因为增删改操作的变化不像查询这么丰富。对于查询的定制,非常容易,只需要提供相关的方法即可。...truespring.data.rest.return-body-on-create=true 配置含义,从上往下,依次是: 给所有的接口添加统一的前缀 配置排序参数的 key ,默认是 sort 配置分页查询时页码的...key,默认是 page 配置分页查询时每页查询页数的 key,默认是size 配置每页最大查询记录数,默认是 20 条 分页查询时默认的页码 更新成功时是否返回更新记录 添加成功时是否返回添加记录

    1.3K60

    【源码免费下载】SpringBoot整合Spring+SpringMVC+MyBatisPlus案例:图书管理系统

    分页操作需要设置分页对象IPage IPage对象中封装了分页操作的所有数据: 数据(Records) 当前页码值(Current) 每页数据总量(Size) 最大页码值(Pages...page.getTotal()); //数据总量 System.out.println(page.getRecords());//数据 } 只是上述调用MyBatisPlus中提供的分页功能相关的方法还无法真正实现分页功能...} } 定义SpringMVC异常处理类,让异常信息也以统一的格式获得: 使用注解@RestControllerAdvice定义SpringMVC异常处理器来处理异常 处理器必须被扫描加载,否则无法生效...PathVariable int pageSize){ IPage page = bookService.getPage(currPage, pageSize); //如果当前页码大于页码值...currentPage: 1,//当前页码 pageSize:6,//每页显示的记录数 total:0,

    36740

    4-基于SpringBoot实现SSMP整合

    因为这东西书写太简单了,简单到瞬间写完,大量的时间做的不是这些整合工作。...,封装分页对应的数据模型 data:{     pagination: {           //分页相关模型数据         currentPage: 1, //当前页码         pageSize...:10,    //每页显示的记录数         total:0,        //总记录数     } }, ​       修改查询全部功能为分页查询,通过路径变量传递页码信息参数 getAll...,删除操作就会出现 BUG,最后一页无数据但是独立展示,对分页查询功能进行后台功能维护,如果当前页码大于最大页码值,重新执行查询。...PathVariable int pageSize){     IPage page = bookService.getPage(currentPage, pageSize);     //如果当前页码大于了总页码

    26510

    SpringBoot系列教程JPA之query使用姿势详解之基础篇

    /between 语句,数字比较,排序以及分页 <!...环境准备 在开始之前,当然得先准备好基础环境,如安装测试使用mysql,创建SpringBoot项目工程,设置好配置信息等,关于搭建项目的详情可以参考前一篇文章 190612-SpringBoot系列教程...比较查询 数字的比较查询,比如大于等于,大于,小于,小于等于,between,下面的三个方法声明,应该能直观表示这种方式可以如何写 /** * 查询大于or等于指定id的所有记录 * * @param...相关博文 mysql之锁与事务详解 Spring学习之事务的使用姿势 Spring学习之事务管理与传播属性 190612-SpringBoot系列教程JPA之基础环境搭建 190614-SpringBoot...系列教程JPA之新增记录使用姿势 190623-SpringBoot系列教程JPA之update使用姿势 190702-SpringBoot系列教程JPA之delete使用姿势详解 1.

    1.5K30

    Springboot 系列(十)使用 Spring data jpa 访问数据库

    前言 Springboot data jpa 和 Spring jdbc 同属于 Spring开源组织,在 Spring jdbc 之后又开发了持久层框架,很明显 Spring data jpa 相对于...,需要编写大量的样板式的代码来执行简单查询或者分页操作。...Spring data jpa 编码 Springboot Data JPA 是 ORM 的完整实现,实体类和数据表关系一一对应,因此实体类也就是数据表结构。...Spring data jpa 测试 使用 Springboot 的单元测试方法可以方便的测试 Springboot 项目,对 Springboot 单元测试不了解的可以直接参照官方文档的说明,当然,也可以直接看下面的示例代码...文章代码已经上传到 GitHub(https://github.com/niumoo/springboot/tree/master/springboot-data-jpa)。

    77120

    一起来学 SpringBoot 2.x | 第八篇:通用 Mapper 与分页插件的集成

    摘要: 原创出处 http://blog.battcn.com/2018/05/10/springboot/v2-orm-mybatis-plugin/ 「唐亚峰」欢迎转载,保留摘要,谢谢!...GIT地址: https://github.com/pagehelper/Mybatis-PageHelper 在没有分页插件之前,写一个分页需要两条SQL语句,一条查询一条统计,然后才能计算出页码,...-- 测试包,当我们使用 mvn package 的时候该包并不会被打入,因为它的生命周期只在 test 之内--> org.springframework.boot...当该参数设置为 true 时,pageNumpages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。...COMMENT '密码', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表'; 实体类 通用Mapper采用了JPA

    47820

    SpringDataJPA 系列之快速入门

    1.1 简介 1.1.1 概述   Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套 JPA 应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作...hibernate 是一套成熟的 ORM 框架,而且 Hibernate 实现了 JPA 规范,所以也可以称 hibernate 为 JPA 的一种实现方式,我们使用 JPA 的 API 编程,意味着站在更高的角度上看待问题...1.1.3 整合 SpringDataJPA ☞ SpringBoot 整合 SpringDataJPA ☞ Spring 整合 SpringDataJPA 1.2 SpringDataJPA 的使用...studentRepository; @Test public void test() { // PageRequest 实现了 Pageable接口,调用静态方法 of 第一个参数:页码...(从0开始); 第二个参数:每页查询条数 Pageable pageable = PageRequest.of(0, 1); // 分页查询 Page<

    1.6K30

    SpringBoot图文教程11—从此不写mapper文件「SpringBoot集成MybatisPlus」

    paginationInterceptor = new PaginationInterceptor(); // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false.../** * 测试分页查询 * * 获取第二页的数据(页码) 每页显示两条(size) */ @Test public void test7(){ //...1.创建一个page对象 封装分页数据 /** * 创建对象的时候 直接写入分页数据 * 参数1 页码 * 参数2 每页条数 */...() * 参数1 IPage 分页对象 封装分页信息 封装获取第二页的数据(页码) 每页显示两条(size) * 参数2 条件构造器 可以直接写null...让我们再次回顾本文的学习目标 掌握SpringBoot中MybatisPlus的使用 要掌握SpringBoot更多的用法,请持续关注本系列教程。

    22.5K31
    领券