码迷,mamicode.com
首页 > 编程语言 > 详细

spring data jpa 多条件查询 + 分页 + 排序

时间:2020-09-18 12:29:40      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:specific   info   work   条件   findall   get   frame   ica   等于   

首先自定义Jpa接口类型需要继承接口JpaSpecificationExecutor<T>

下面是实现多条件查询 + 分页 + 排序的代码

导入的的相关类

import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;

 

public Page<RuleLogInfoDTO> findPageByParam(final QueryRuleLogParam param) {
     //分页加排序 Pageable page = PageRequest.of(param.getPageIndex() - 1 , param.getPageSize(),Sort.by(Sort.Order.desc("dateCreate"))); //动态条件 Specification<OperateLogDO> specification = (Specification<OperateLogDO>) (root, query, criteriaBuilder) -> { List<Predicate> list = new ArrayList<>(); if (ObjectUtil.isNotNull(param.getRuleId())){
        // 等于查询 list.add(criteriaBuilder.equal(root.get("resourceId"),param.getRuleId())); } if (ObjectUtil.isNotEmpty(param.getRuleName())){
          // like查询 list.add(criteriaBuilder.like(root.get("logInfo"),"%" + param.getRuleName()+ "%")); } if (CollectionUtils.isNotEmpty(list)){ Predicate[] p = new Predicate[list.size()]; return criteriaBuilder.and(list.toArray(p)); } return null; };
     org.springframework.data.domain.Page<OperateLogDO> pageLogInfo = repository.findAll(specification,page);
        return pageLogInfo;
}

  

spring data jpa 多条件查询 + 分页 + 排序

标签:specific   info   work   条件   findall   get   frame   ica   等于   

原文地址:https://www.cnblogs.com/imfx/p/13689869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!