Page接口getTotalElements()返回总条数还是Pageable传入的size值?
关于Spring Data JPA Page.getTotalElements()的返回值问题
嘿,这个问题问得很到位,我来给你讲明白:
当你的查询实际匹配50条数据,且Pageable的size设为10时,调用getTotalElements()返回的结果是50,不是10。
为啥呢?Spring Data JPA里的Page对象就是专门用来封装分页相关完整信息的:
getContent():返回当前页的具体数据,也就是这时候会拿到10条记录getTotalElements():返回的是符合查询条件的所有记录的总数,也就是你说的50条- 另外你还可以通过
getTotalPages()拿到总页数(这里就是5页),getSize()拿到你设置的每页大小(10)
对了,顺便提一嘴你代码里的小问题:你的@Query写法有问题哦,如果是用原生SQL的话,需要加上nativeQuery=true,而且:searchType = ':searchParam'里的单引号会把searchParam当成字符串字面量,应该去掉单引号写成:searchType = :searchParam;如果是JPQL的话,不能直接写SELECT * FROM ABC,得写成SELECT a FROM Abc a WHERE a.#{#searchType} = :searchParam AND a.status IN ('ACTIVE','PENDING'),不然会报错的。
内容的提问来源于stack exchange,提问作者aayoustic
相关产品推荐
相关产品推荐

