package com.example.myapp.domain; import org.springframework.data.domain.*; import org.springframework.data.repository.*; public interface CityRepository extends Repository<City, Long> { Page<City> findAll(Pageable pageable); City findByNameAndCountryAllIgnoringCase(String name, String country); }
代码如官方文档提供,调用上面的分页函数findAll返回的Page<City>对象中,只有数据库记录总数,却没有返回记录对象,content的size为0;
Page<City> findAll(Pageable pageable);
查询结果为空的问题,我猜测有两个原因:
1、页码应从0开始,见PageRequest对象源码构造函数的javadoc;
2、继承PagingAndSortingRepository接口,该接口已提供分页的findAll;
通常会选择继承JpaRepository接口,提供了基础CRUD、分页、排序等自动实现。
自定义的分页查询你只需方法最后一个参数为Pageable,返回类型定义为Page<T>即可。
比如你的第二个方法:
分页可写成(也可以@Query 写JPQL):
你继承的是Repository接口,你得自己实现分页的逻辑。