@Test
void queryPage() {
/**
* 自定义查询条件
* 1. 实现Specification接口(提供泛型;查询的对象类型)
* 2. 实现toPredicate方法(构造查询条件)
* 3. 需要借助方法参数中的两个参数(
* root:获取需要查询的对象属性
* CriteriaBuilder:构造查询条件,内部封装了很多查询条件(模糊匹配,精准匹配)
*/
Specification<Student> spec = (Specification<Student>) (root, query, criteriaBuilder) -> {
Path<Student> path = root.get("isAvailable");
Predicate equal = criteriaBuilder.equal(path, "1");
return equal;
};
Integer pageNo = 0;
Integer pageSize = 2;
/**
* 添加排序Sort
* Sort.Direction.DESC表示降序
* Sort.Direction.ASC表示升序
* properties是指实体类的属性名(不是字段名)
*/
Sort.Order order = Sort.Order.asc("id");
Sort sort = Sort.by(order);
/**
* 分页参数Pageable
* 参数1:查询的页码
* 参数2:每页查询的条数
* 参数3:查询结果的排序规则(可选
*/
Pageable pageable = PageRequest.of(pageNo, pageSize, sort); //原来的new PageRequest()已经过时
/**
* 分页查询
* 参数1:查询条件Specification
* 参数2:分页参数Pageable
*/
Page<Student> page = userRepository.findAll(spec, pageable);
System.err.println(page.getContent());
}
```
jpa实现分页排序查询--笔记
最新推荐文章于 2024-04-28 00:15:00 发布