zoukankan      html  css  js  c++  java
  • SpringDataJPA的几个使用记录

     public Page<XMGLFileTemplateDTO> findXMGLFileTemplateByConditions(XMGLFileTemplateDTO xmglFileTemplateDTO, Pageable pageable) throws MyException {
            Page<XMGLFileTemplate> XMGLFileTemplateLists = this.xmglFileTemplateRepository.findAll(new Specification<XMGLFileTemplate>() {
                @Override
                public Predicate toPredicate(Root<XMGLFileTemplate> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
                    List<Predicate> predicateList = new ArrayList<Predicate>();
                    //文档名称
                    if(StringUtils.isNotBlank(xmglFileTemplateDTO.getFileName())){
                        predicateList.add(criteriaBuilder.like(root.get("fileName"),"%"+xmglFileTemplateDTO.getFileName()+"%"));
                    }
                    //上传人员
                    if(StringUtils.isNotBlank(xmglFileTemplateDTO.getUploadUserName())){
                        predicateList.add(criteriaBuilder.like(root.get("rsglSysUser").get("name"),"%"+xmglFileTemplateDTO.getUploadUserName()+"%"));
                    }
                    //重要性
                    if(null != xmglFileTemplateDTO.getImportantLevel()){
                        predicateList.add(criteriaBuilder.equal(root.get("importantLevel"),xmglFileTemplateDTO.getImportantLevel()));
                    }
    
                    //交易时间
                    if (null != xmglFileTemplateDTO.getUploadBeginTime() && null != xmglFileTemplateDTO.getUploadEndTime()) {
                        predicateList.add(criteriaBuilder.and(criteriaBuilder.greaterThanOrEqualTo(root.get("uploadTime"), DateUtils.parseDateTime(xmglFileTemplateDTO.getUploadBeginTime() + " 00:00:00")),
                            criteriaBuilder.lessThanOrEqualTo(root.get("uploadTime"), DateUtils.parseDateTime(xmglFileTemplateDTO.getUploadEndTime() + " 23:59:59"))));
                    } else if (null != xmglFileTemplateDTO.getUploadBeginTime()) {
                        predicateList.add(criteriaBuilder.greaterThanOrEqualTo(root.get("uploadTime"),DateUtils.parseDateTime(xmglFileTemplateDTO.getUploadBeginTime() + " 00:00:00")));
                    } else if (null != xmglFileTemplateDTO.getUploadEndTime()) {
                        predicateList.add(criteriaBuilder.lessThanOrEqualTo(root.get("uploadTime"),DateUtils.parseDateTime(xmglFileTemplateDTO.getUploadEndTime() + " 23:59:59")));
                    }
                    criteriaQuery.where(predicateList.toArray(new Predicate[0]));
                    //更新时间倒序排序
                    criteriaQuery.orderBy(criteriaBuilder.desc(root.get("uploadTime")));
                    return null;
                }
            }, pageable);
            List<XMGLFileTemplateDTO> xmglFileTemplateDTOs = new ArrayList<XMGLFileTemplateDTO>();
            for (XMGLFileTemplate xmglFileTemplate : XMGLFileTemplateLists.getContent()) {//把分页对象转换为list对象 因为
                XMGLFileTemplateDTO dto = new XMGLFileTemplateDTO();
                BeanUtils.copyProperties(xmglFileTemplate, dto);//把接受前台参数的DTO和doman层的进行匹配拷贝
                dto.setUploadUserName(xmglFileTemplate.getRsglSysUser().getName());
                xmglFileTemplateDTOs.add(dto);//加入list集合
            }
            return new CustomPageImpl<XMGLFileTemplateDTO>(xmglFileTemplateDTOs, pageable,XMGLFileTemplateLists.getTotalElements());
        }

    services层,使用对象分页查询

  • 相关阅读:
    第五章 并发性:互斥和同步
    第四章 线程、SMP和微内核
    Python Linked List
    关于名字查找
    测试当前C环境的栈帧增长方向以及传递参数时的压栈顺序
    关于栈——不针对特定实现的分析
    c语言15行实现简易cat命令
    C11 constant expressions 常量表达式
    一个fork短码的扩展版本
    为什么C++没有对应realloc的new操作符呢?
  • 原文地址:https://www.cnblogs.com/kzfy/p/5377645.html
Copyright © 2011-2022 走看看