JPA条件查询时间区间用LocalDateTime的问题
@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的问题的更多相关文章
- Jpa条件查询组合查询and 和 or同时用
条件查询,各个条件之间是and并且&&关系,其中地理信息省市区县,例如河北省,要包括其下属所有城市,每个城市包括下属区县,只选择河北省时候,要查询的是河北省所有的,他们之间是or 或者 ...
- Spring Data JPA 条件查询的关键字
Spring Data JPA 为此提供了一些表达条件查询的关键字,大致如下: And --- 等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(Stri ...
- SpringBoot JPA + 分页 + 单元测试SpringBoot JPA条件查询
application.properties 新增数据库链接必须的参数 spring.jpa.properties.hibernate.hbm2ddl.auto=update 表示会自动更新表结构,所 ...
- Spring data jpa 条件查询-按时间段查询
项目开发中的代码片段,仅供参考 @Override public Page<泛型> findRecordList(int couponDetailId, int pageNum, int ...
- mybatis的mapper特殊字符转移以及动态SQL条件查询
前言 我们知道在项目开发中之前使用数据库查询,都是基于jdbc,进行连接查询,然后是高级一点jdbcTemplate进行查询,但是我们发现还是不是很方便,有大量重复sql语句,与代码偶合,效率低下,于 ...
- JPA分页查询与条件分页查询
情有独钟的JPA 平时在写一些小项目时,比较喜欢引用 Spring Data Jpa,其实还是图他写代码快~在日常的开发工作中,分页列表查询基本是随处可见,下面一起看一下如何使用 jpa 进行多条件查 ...
- spring data jpa实现多条件查询(分页和不分页)
目前的spring data jpa已经帮我们干了CRUD的大部分活了,但如果有些活它干不了(CrudRepository接口中没定义),那么只能由我们自己干了.这里要说的就是在它的框架里,如何实现自 ...
- 【JPA】表达条件查询的关键字
1.通过解析方法名创建查询 框架在进行方法名解析时,会先把方法名多余的前缀截取掉,比如 find.findBy.read.readBy.get.getBy,然后对剩下部分进行解析.并且如果方法的最后一 ...
- Spring Data JPA,一种动态条件查询的写法
我们在使用SpringData JPA框架时,进行条件查询,如果是固定条件的查询,我们可以使用符合框架规则的自定义方法以及@Query注解实现. 如果是查询条件是动态的,框架也提供了查询接口. Jpa ...
随机推荐
- WCF中DataContract和MessageContract的区别
一.代码案例 首选建立2个WCF Service,它们分别使用不同的Contract,同时创建一个Console控制台项目,作为Client: 其中,WcfServiceWithDataContrac ...
- 【java基础】 == 和 equals() 的区别
==号和equals()方法都是比较是否相等的方法,那它们有什么区别和联系呢? 首先,==号在比较基本数据类型(指的值类型)时比较的是值,而用==号比较两个对象时比较的是两个对象的地址值: int x ...
- Linux安装配置mysql
1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件 (1)先安装cmake(mysql5.5以后是通过cmake来编译的) [root@ rhel5 ...
- js-权威指南学习笔记10
第十章 正则表达式的模式匹配 1.正则表达式是一个描述字符模式的对象. 2.可以使用RegExp()构造函数来创建RegExp对象,不过RegExp对象更多是通过一种特殊的直接量语法来创建. 3.程序 ...
- margin相关基本知识
什么是 margin ? CSS 边距属性定义元素周围的空间.通过使用单独的属性,可以对上.右.下.左的外边距进行设置.也可以使用简写的外边距属性同时改变所有的外边距.——W3School 边界,元素 ...
- css类选择器类名覆盖优先级
code <style> .a{ background: red; } .b{ background: yellow; } </style> <div class=&qu ...
- java.lang.VerifyError: com/google/android/gms/measurement/internal/zzw
android studio com.google.android.gms:play-services 运行报错:java.lang.VerifyError: com/google/android/ ...
- arcengine 正确绑定办法
if (!RuntimeManager.Bind(ProductCode.Engine)) { if (!RuntimeManager.Bind(ProductCode.Desktop)) { Mes ...
- 团队项目个人进展——Day03
一.昨天工作总结 冲刺第三天,昨天忙着整理数据结构相关知识,在团队项目上只是花了少部分时间来对地图的样式布局进行调整 二.遇到的问题 无 三.今日工作规划 继续昨天的规划,研究地图定位代码,并通过编写 ...
- 无锁HashMap的原理与实现
转载自: http://coolshell.cn/articles/9703.html 在<疫苗:Java HashMap的死循环>中,我们看到,java.util.HashMap并不能直 ...