文档章节

JPA 查询构成器

x
 xxm1995
发布于 05/30 15:33
字数 198
阅读 5
收藏 0
/**
* 可进行查询的分页列表
*/
public Page<MessageConsumeFailLog> list(LogQueryParam param){
        Sort sort = new Sort( Sort.Direction.DESC ,"createTime");
        Pageable pageable = new PageRequest( param.getPageNo(), param.getPageSize(), sort );
        return messageConsumeFailLogRepository.findAll( (root, query, cb) -> listSpecification(root, cb, param), pageable );

    }
/**
* 分页列表的查询构成器
*/
 private Predicate listSpecification(Root<MessageConsumeFailLog> root,
                                        CriteriaBuilder cb,
                                        LogQueryParam param){
        List<Predicate> predicates = Lists.newArrayListWithExpectedSize(10);
        //消息队列名称
        if (!StringUtils.isEmpty(param.getQueueName())){
            predicates.add( cb.like( root.get( "queueName" ).as( String.class ), "%"+param.getQueueName()+"%"));
        }
        //关键词
        if (!StringUtils.isEmpty(param.getKeyWord())){
            predicates.add( cb.like( root.get( "keyWord" ).as( String.class ), "%"+param.getKeyWord()+"%"));
        }
        //关键内容
        if (!StringUtils.isEmpty(param.getKeyWordValue())){
            predicates.add( cb.like( root.get( "keyWordValue" ).as( String.class ), "%"+param.getKeyWordValue()+"%"));
        }
        //日志状态
        if (!Objects.isNull(param.getState())){
            predicates.add( cb.equal( root.get( "state" ).as( Integer.class ), param.getState()));
        }
        //开始时间 结束时间
        if (!Objects.isNull(param.getStartTime())&&!Objects.isNull(param.getEndTime())){
            //时间戳转Date
            Date startTime = new Date( param.getStartTime() );
            Date entTime = new Date( param.getEndTime() );
            predicates.add( cb.between( root.get( "createTime" ).as( Date.class ), startTime, entTime));
        }
        int size = predicates.size();
        return cb.and( predicates.toArray(new Predicate[size]) );
    }

© 著作权归作者所有

x
粉丝 0
博文 24
码字总数 12971
作品 0
菏泽
私信 提问
spring mvc 返回的页面出现错误

web.xml: springmvc04 index.jsp springmvc org.springframework.web.servlet.DispatcherServlet springmvc *.do springmvc-servlet.xml: UserController.java package com.hl.controller; i......

小栗子hl
2016/03/23
690
5
EJB 3.2 将包含什么新特性?

EJB(Enterprise JavaBean,企业级JavaBean)是一个用来构筑企业级应用的服务器端可被管理组件。EJB规范的目的在于为企业级应用开发人员实现后台业务提 供一个标准方式,自动处理诸如数据持久...

oschina
2012/07/31
3.4K
15
StandardContext分析-tomcat6.x源码阅读

2013-10-06 StandardContext 是什么 是org.apache.catalina.Context的标准实现,继承自ContainerBase基容器,具备容器的功能,在tomcat结构层次图中位于Host内部,包含ServletWrapper容器,它...

douglaswei
2013/10/20
0
0
关于在JSP中写入Java代码的困惑

说实话,刚学Java时就有人对我说,不要把Java代码写入jsp,说比方和美工合作之类的,人家看不懂啊等等理由.以后在做项目的时候我也确实老老实实的遵守这条规定,但是后来想想有的时候直接在jsp中做...

白起
2011/12/10
14.6K
6
mvc:view-controller

This tag is a shorcut for defining a ParameterizableViewController that immediately forwards to a view when invoked. 这个标签是为了简化ParameterizableViewController映射到视图的配......

随智阔
2014/03/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

解决问题&发现问题

作为一个程序员非常重要的的能力就是解决问题的能力,当然除了解决问题之外,还有一个经常被疏忽的能力-发现问题的能力。 解决问题 一套有效的解决问题的能力非常重要,下面是一个解决问题的...

Lubby
23分钟前
6
0
Leetcode PHP题解--D104 167. Two Sum II - Input array is sorted

D104 167. Two Sum II - Input array is sorted 题目链接 167. Two Sum II - Input array is sorted 题目分析 给定一个已经排序好的整数数组,从中寻找两个数字,使其相加之后等于给定的一个...

skys215
29分钟前
4
0
IntelliJ IDEA Spring Boot 2.x 多模块项目创建

在学习Spring Boot 2的时候顺便来学习创建下Maven下的多模块项目创建。方便学习使用整套开发流程。 第一步,检查IDEA,新版本的IDEA可能没有Spring Assistant可通过插件安装(Preferences->P...

被猪拱了的JAVA
30分钟前
6
0
Java运行状态分析2:获取线程堆栈信息

Java运行状态分析2:获取线程堆栈信息 基本概念 出现内存泄漏或者运行缓慢场景,有时候无法直接从业务日志看出问题时候,需要分析jvm内存和线程堆栈 线程堆栈信息主要记录jvm线程在某时刻线程...

indi_yugj
30分钟前
11
0
解决java编译错误:编码GBK的不可映射字符

https://www.cnblogs.com/charleswong/p/8481593.html 新建java文件,存储时Encoding选择了UTF-8, 由于语句中包含中文,javac编译时报错,提示"编码GBK的不可映射字符": 解决办法: 方法一...

时刻在奔跑
36分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部