zoukankan      html  css  js  c++  java
  • Spring Data Jpa-动态查询条件

        /**
         * 
         * 查看日志列表-按照时间倒序排列
         * 
         * @author: wyc
         * @createTime: 2017年4月20日 下午4:24:43
         * @history:
         * @return List<SecurityAuditLog>
         */
        public Page<SecurityAuditLog> pageLogList(final SecurityAuditLog log,int page,int size){
            Sort s=new Sort(Sort.Direction.DESC, "operateTime");
            PageRequest p=new PageRequest(page-1, size, s);
            
             Specification querySpecifi = new Specification<SecurityAuditLog>() {
                    @Override
                    public Predicate toPredicate(Root<SecurityAuditLog> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
    
                        List<Predicate> predicates = new ArrayList<>();
                        if(null != log.getLoginAccount()&&!"".equals(log.getLoginAccount())){
                            predicates.add(criteriaBuilder.like(root.<String>get("loginAccount"), "%"+log.getLoginAccount()+"%"));
                        }
                        
                        if(null != log.getQuerySign()&&!"".equals(log.getQuerySign())){
                            predicates.add(criteriaBuilder.like(root.<String>get("querySign"), "%"+log.getQuerySign()+"%"));
                        }
                        
                        if(null != log.getQueryType()&&!"".equals(log.getQueryType())){
                            predicates.add(criteriaBuilder.equal(root.<String>get("queryType"), log.getQueryType()));
                        }
                        
                        if(null != log.getOperatePlatform()&&!"".equals(log.getOperatePlatform())){
                            predicates.add(criteriaBuilder.equal(root.<String>get("operatePlatform"), log.getOperatePlatform()));
                        }
                        
                        if(null != log.getOperateModule()&&!"".equals(log.getOperateModule())){
                            predicates.add(criteriaBuilder.equal(root.<String>get("operateModule"), log.getOperateModule()));
                        }
                        
                        
                        return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
                    }
                };
            Page<SecurityAuditLog> list= securityAuditLogDao.findAll(querySpecifi,p);
            return list;
        }
    import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
    import org.springframework.data.repository.PagingAndSortingRepository;public interface ISecurityAuditLogDao extends PagingAndSortingRepository<SecurityAuditLog, String>,JpaSpecificationExecutor<SecurityAuditLog>{
    
    }
  • 相关阅读:
    ROW_NUMBER()用法(转)
    winform MD5值生成
    VC使用“添加方法向导”添加调度映射方法“
    MyGeneration配置说明
    dataGridView取消自动生成列
    PHP魔术常量(magic constant)
    Eclipse添加DTD文件实现xml的自动提示功能
    Google:5个常见的SEO错误和6个SEO好主意
    PHP检查PEAR是否工作
    手把手教你在ubuntu上安装LAMP
  • 原文地址:https://www.cnblogs.com/wuyechun/p/7171312.html
Copyright © 2011-2022 走看看