public Page<AliScdnTask> refreshList(AliScdnIn aliScdnIn) {
if("all".equals(aliScdnIn.getObjectType())){
aliScdnIn.setObjectType(null);
}
Specification<AliScdnTask> specification = new Specification<AliScdnTask>() {
@Override
public Predicate toPredicate(Root<AliScdnTask> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
List<Predicate> predicates = new ArrayList<>();
//条件查询匹配对象
if(StringUtils.isNoneBlank(aliScdnIn.getObjectType())){
Predicate predicate = criteriaBuilder.equal(root.get("objectType").as(String.class),aliScdnIn.getObjectType());
predicates.add(predicate);
}
//条件查询,模糊查询匹配对象
if(StringUtils.isNoneBlank(aliScdnIn.getUrl())){
Predicate predicate = criteriaBuilder.like(root.get("objectPath").as(String.class),"%"+aliScdnIn.getUrl()+"%");
predicates.add(predicate);
}
//条件查询,区间匹配,开始时间到结束时间
if(aliScdnIn.getStartTime()!=null&&aliScdnIn.getEndTime()!=null){
Predicate less = criteriaBuilder.lessThanOrEqualTo(root.get("creationTime").as(Date.class),aliScdnIn.getEndTime());
predicates.add(less);
Predicate greater = criteriaBuilder.greaterThanOrEqualTo(root.get("creationTime").as(Date.class),aliScdnIn.getStartTime());
predicates.add(greater);
}
//将集合转换为数组,放入构建对象中
return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
}
};
//传入当前页与每页数
Pageable pageable = PageRequest.of(aliScdnIn.getPage()-1,aliScdnIn.getLimit());
//将构建对象与当前页参数放入findAll中查询,直接实现,就会再dao层生成接口
return aliScdnTaskDao.findAll(specification,pageable);
}
springdata jpa
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- jpa是一种orm规范,也就是api 而hibernate之类的框架则是jpa的具体实现 springdata j...
- 1. 概述 Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问技术,包括非关系...
- 1、pom引入 2、创建表 sql语句: 3、配置application.yml 4、写实体类 5、写DAO接口 ...