@Override
public Page<Order> findAll(String outTradeNo, String tradeNo, String mchAppid, String status, String payType,
String startData, String endData, Pageable pageable) {
Page<Order> pageList = orderDao.findAll((root,query,cb) -> {
List<Predicate> list = new ArrayList<Predicate>(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdfmat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
if (StringUtils.isNotEmpty(startData) && StringUtils.isNotEmpty(endData)) {
try {
list.add(cb.between(root.get("payTime"),
LocalDateTime.parse(sdfmat.format(sdf.parse(startData)),df),
LocalDateTime.parse(sdfmat.format(sdf.parse(endData).getTime()+86400000), df)));
} catch (ParseException e) {
e.printStackTrace();
}
}
if(outTradeNo!=null && outTradeNo!="") {
list.add(cb.like(root.get("outTradeNo"), "%"+outTradeNo+"%"));
}
if(tradeNo!=null && tradeNo!="") {
list.add(cb.like(root.get("tradeNo"), "%"+tradeNo+"%"));
}
if(mchAppid!=null && mchAppid!="") {
list.add(cb.like(root.get("mchAppid"), "%"+mchAppid+"%"));
}
if(status!=null && status!="") {
list.add(cb.equal(root.get("state"), status));
}
if(payType!=null && payType!="") {
list.add(cb.equal(root.get("payType"), payType));
}
Predicate[] array = new Predicate[list.size()];
return cb.and(list.toArray(array));
}, pageable); return pageList;
}

更多精彩文章欢迎关注公众号“Java之康庄大道”

JPA条件查询时间区间用LocalDateTime的问题的更多相关文章

  1. Jpa条件查询组合查询and 和 or同时用

    条件查询,各个条件之间是and并且&&关系,其中地理信息省市区县,例如河北省,要包括其下属所有城市,每个城市包括下属区县,只选择河北省时候,要查询的是河北省所有的,他们之间是or 或者 ...

  2. Spring Data JPA 条件查询的关键字

    Spring Data JPA 为此提供了一些表达条件查询的关键字,大致如下: And --- 等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(Stri ...

  3. SpringBoot JPA + 分页 + 单元测试SpringBoot JPA条件查询

    application.properties 新增数据库链接必须的参数 spring.jpa.properties.hibernate.hbm2ddl.auto=update 表示会自动更新表结构,所 ...

  4. Spring data jpa 条件查询-按时间段查询

    项目开发中的代码片段,仅供参考 @Override public Page<泛型> findRecordList(int couponDetailId, int pageNum, int ...

  5. mybatis的mapper特殊字符转移以及动态SQL条件查询

    前言 我们知道在项目开发中之前使用数据库查询,都是基于jdbc,进行连接查询,然后是高级一点jdbcTemplate进行查询,但是我们发现还是不是很方便,有大量重复sql语句,与代码偶合,效率低下,于 ...

  6. JPA分页查询与条件分页查询

    情有独钟的JPA 平时在写一些小项目时,比较喜欢引用 Spring Data Jpa,其实还是图他写代码快~在日常的开发工作中,分页列表查询基本是随处可见,下面一起看一下如何使用 jpa 进行多条件查 ...

  7. spring data jpa实现多条件查询(分页和不分页)

    目前的spring data jpa已经帮我们干了CRUD的大部分活了,但如果有些活它干不了(CrudRepository接口中没定义),那么只能由我们自己干了.这里要说的就是在它的框架里,如何实现自 ...

  8. 【JPA】表达条件查询的关键字

    1.通过解析方法名创建查询 框架在进行方法名解析时,会先把方法名多余的前缀截取掉,比如 find.findBy.read.readBy.get.getBy,然后对剩下部分进行解析.并且如果方法的最后一 ...

  9. Spring Data JPA,一种动态条件查询的写法

    我们在使用SpringData JPA框架时,进行条件查询,如果是固定条件的查询,我们可以使用符合框架规则的自定义方法以及@Query注解实现. 如果是查询条件是动态的,框架也提供了查询接口. Jpa ...

随机推荐

  1. 关于JqueryCheck选中获取数据

    关于Jquery获取Check选中数据 首先还是得引用Jquery的包,然后新增3个CheckBox <div> <input type="checkbox" n ...

  2. JSONP 教程

    JSONP 教程 本章节我们将向大家介绍 JSONP 的知识. Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获 ...

  3. Spring Boot—13事务支持

    pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  4. 调用Android中的软键盘

    我们在Android提供的EditText中单击的时候,会自动的弹 出软键盘,其实对于软键盘的控制我们可以通过InputMethodManager这个类来实现.我们需要控制软键盘的方式就是两种一个是像 ...

  5. android--Git上克隆项目遇到的坑

    直接上图,首先你得有你得GitHub项目地址,如下: 然后打开android studio,选择新建项目时从Git上克隆: 点击clone等待完成,新窗口打开. 打开之后可能.或许.大概.也许会出现下 ...

  6. text-overflow修剪文本,以省略号显示

    overflow: hidden;  必须设置,不然无法修剪文本 white-space: nowrap;  规定段落中的文本不进行换行 text-overflow: ellipsis;  当文本溢出 ...

  7. sql 字符、数字类型自动转换及运算

    本页面所有内容也可以在oracle 运行,只需要把int.float .decimal 改为 number类型即可 -- 字符串转数字 int 类型 drop table test;create ta ...

  8. zookeeper应用 - 监控

    服务器端:监听zk上父节点的子节点变化 package monitor; import java.util.List; import java.util.concurrent.CountDownLat ...

  9. 让Oracle的 SHOW PARAMETER 命令显示隐藏参数

    转自 http://blog.csdn.net/staricqxyz/article/details/8624549 Find internal of "show parameter&quo ...

  10. CSS 小结笔记之浮动

    在css中float是一个非常好用的属性,float最基本用法是用来做文字环绕型的样式的. 基本用法:float:left | right 例如 <!DOCTYPE html> <h ...