首页 > 其他分享 >spring data jpa 分页

spring data jpa 分页

时间:2023-03-29 10:05:27浏览次数:36  
标签:sortType jpa spring userId int pageNumber new data spec

public Page<Task> getUserTask(Long userId, Map<String, Object> searchParams, int pageNumber, int pageSize,

 String sortType) {

 PageRequest pageRequest = buildPageRequest(pageNumber, pageSize, sortType);

 Specification<Task> spec = buildSpecification(userId, searchParams);


 return taskDao.findAll(spec, pageRequest);

 }


 /**

 * 创建分页请求.

 */

 private PageRequest buildPageRequest(int pageNumber, int pagzSize, String sortType) {

 Sort sort = null;

 if ("auto".equals(sortType)) {

 sort = new Sort(Direction.DESC, "id");

 } else if ("title".equals(sortType)) {

 sort = new Sort(Direction.ASC, "title");

 }


 return new PageRequest(pageNumber - 1, pagzSize, sort);

 }


 /**

 * 创建动态查询条件组合.

 */

 private Specification<Task> buildSpecification(Long userId, Map<String, Object> searchParams) {

 Map<String, SearchFilter> filters = SearchFilter.parse(searchParams);

 filters.put("user.id", new SearchFilter("user.id", Operator.EQ, userId));

 Specification<Task> spec = DynamicSpecifications.bySearchFilter(filters.values(), Task.class);

 return spec;

 }

标签:sortType,jpa,spring,userId,int,pageNumber,new,data,spec
From: https://blog.51cto.com/u_16034393/6156328

相关文章