1.使用 PageRequest.of 静态方法创建一个PageRequest 对象 或者 Pageable 接口;
Pageable pageRequest = PageRequest.of();
2.传入分页和排序的参数;
int page = 10;
int size = 5;
PageRequest pageRequest = PageRequest.of(page, size, Sort.by("account"));
3.使用@Query 注解写原生sql语句:
nativeQuery 属性:true 开启原生sql,
value 属性:写查询数据sql,
countQuery 属性:写查询总条数sql;
@Query(nativeQuery = true,
value = "select * from t_merchant ",
countQuery = "select count(1)from t_merchant ")
//方法名称可以自定义,参数传入PageRequest对象
Page<Merchant>findMerchantPage(PageRequest pageRequest);
5.注意:方法传入参数中的Pageable参数,在SQL并没有使用这样一个参数,但是pageable中的page参数和sort参数会在查询时自动拼接到末尾,因此就达到了原生SQL实现分页排序的效果
Hibernate:
select
*
from
t_merchant
order by
account asc limit ?,
?
Hibernate:
select
count(1)
from
t_merchant