概要:前端日期选择器选择完之后传一个String到后台,后台的字段的数据类型是date

前端:

                <label class="layui-form-label" >单据日期</label>
<div class="layui-input-inline">
<input type="text" id="taxDate" placeholder="单据日期"
autocomplete="off" class="layui-input">
</div>
    //单据日期
laydate.render({
elem: '#taxDate'
,type: 'date' //默认,可不填
});

后端:

    @Override
public Page<SalesOrder> findPage(SalesOrderModel salesOrderModel, int currentPage, int pageSize) { Specification<SalesOrder> specification = new Specification<SalesOrder>() { @Override
public Predicate toPredicate(Root<SalesOrder> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
List<Predicate> list = new ArrayList<>();
Predicate deleteMark = cb.equal(root.get("deleteMark").as(Boolean.class), false);
list.add(deleteMark);
// 单据编号
if (!CommonUtil.isEmpty(salesOrderModel.getOrderId())) {
Predicate orderId = cb.like(root.get("orderId"), "%" + salesOrderModel.getOrderId().trim() + "%");
list.add(orderId);
} // 内部编号
if (!CommonUtil.isEmpty(salesOrderModel.getEntryId())) {
Predicate entryId = cb.like(root.get("entryId"), "%" + salesOrderModel.getEntryId().trim() + "%");
list.add(entryId);
} // 单据日期
if (!CommonUtil.isEmpty(salesOrderModel.getTaxDate())) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = null;
Date endDate = null;
try {
startDate = format.parse(salesOrderModel.getTaxDate());
endDate = format.parse(salesOrderModel.getTaxDate());
} catch (ParseException e) {
              startDate = new Date();
              endDate = new Date();
            }
            Predicate taxDate = cb.between(root.<Date>get("taxDate"),startDate, endDate);//开始日期和结束日期是同一个 list.add(taxDate);
      }
        Predicate[] predicates = new Predicate[list.size()]; return cb.and(list.toArray(predicates));
} };
        List<Order> orders = new ArrayList<>(); orders.add(new Order(Direction.DESC, "createDate"));
      Sort sort = Sort.by(orders); Pageable pageable = PageRequest.of(currentPage - 1, pageSize, sort);       return salesOrderRepository.findAll(specification, pageable);
}

CriteriaBuilder jpa 日期date查询的更多相关文章

  1. Spring data jpa 复杂动态查询方式总结

    一.Spring data jpa 简介 首先我并不推荐使用jpa作为ORM框架,毕竟对于负责查询的时候还是不太灵活,还是建议使用mybatis,自己写sql比较好.但是如果公司用这个就没办法了,可以 ...

  2. Oracle的日期时间范围查询

    Oracle日期时间范围查询 Sql代码 /* 日期时间范围查询 */ ---------- 创建日期时间测试表-------------------------------------------- ...

  3. 使用Sql按日期条件查询

    --查询当天(1: select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 --查询当天(2:select * from i ...

  4. Spring Hibernate JPA 联表查询 复杂查询(转)

    今天刷网,才发现: 1)如果想用hibernate注解,是不是一定会用到jpa的? 是.如果hibernate认为jpa的注解够用,就直接用.否则会弄一个自己的出来作为补充. 2)jpa和hibern ...

  5. Spring Hibernate JPA 联表查询 复杂查询

    今天刷网,才发现: 1)如果想用hibernate注解,是不是一定会用到jpa的? 是.如果hibernate认为jpa的注解够用,就直接用.否则会弄一个自己的出来作为补充. 2)jpa和hibern ...

  6. Mongoose关于当天日期的查询

    参考:https://blog.csdn.net/difffate/article/details/70312894 Ant Design Pro中,有关于日期的查询条件,但日期是以数字表示的 Req ...

  7. oracle日期时间范围查询

    Oracle的日期时间范围查询 字段为:字符串类型(char),长度为:10 SELECT * FROM testdatetime t WHERE = AND t.createdate >= ' ...

  8. JPA的动态查询拼接

    在使用Spring JPA提供的方法只能进行简单的CRUD,如果遇到复杂的情况就需要我们动态来构建查询条件了.这里我们来看使用CriteriaBuilder如何来构造查询.核心代码: Criteria ...

  9. MySQL 按照日期格式查询带有时间戳数据

    按照日期格式查询带有时间戳数据一般在MSQL数据库中的时间都是以时间戳的格式来存储时间的,但是对于我们来说,时间戳格式具体表示的是什么时间,我们很难一眼看出来,所以当我们要具体查询某一个时间或时间段的 ...

随机推荐

  1. 数据库自学笔记(2)--- HAVING和WHERE, ANY 和 ALL,IN和EXIST。

    1.HAVING和WHERE: WHERE 和 HAVING 的作用对象不一样.WHERE作用于基本表或视图,挑出满足条件的元组.HAVING作用于组(group),一般配合GROUP BY 使用. ...

  2. JMeter接口测试-跨线程组取参数值的两种方法

    前言 如果你工作中已经在用jmeter做接口测试,或性能测试了,你可能会遇到一个麻烦.那就是jmeter的变量值不能跨线程组传递.如果变量在开始测试之前已经确定了,我们可以用参数化关联就可以实现. 但 ...

  3. JUnit套件测试(共通类测试)

    @RunWith(Suite.class)@Suite.SuiteClasses({ TestClass1.class, TestClass2.class })public class SuiteTe ...

  4. MySQL基础入门使用和命令的使用

    数据库了解 概念 数据库就是一种特殊的文件,其中存储着需要的数据 一个数据库可以有多张表 MySQL是一种关系型数据库 具有关联性数据的就是关系型数据库 MySQL是一种软件可以用来创建mysql数据 ...

  5. 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification

    论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...

  6. magento2.2.3 根据产品ID获取栏目名称的正确调用方式

    根据product_id 获取 category_ids : /** * @param $product_id * @return array */ public function mc_getCat ...

  7. spring boot中通用应用程序属性

    可以在application.properties文件内部application.yml,文件内部或命令行开关中指定各种属性.本附录提供了常见的Spring Boot属性列表以及对使用它们的基础类的引 ...

  8. Miller-Rabin素数检测算法 acm模板

    Miller-Rabin素数检测算法 其基于以下两个定理. Fermat小定理 若n是素数,则∀a(a̸≡0(modn))\forall a(a \not\equiv 0 \pmod{n})∀a(a̸ ...

  9. kali安装mongodb

    kali安装mongodb 1. 从官网下载需要的安装包 官网下载地址:https://www.mongodb.com/download-center/community 下载完后可以直接用xshel ...

  10. TCP 协议快被淘汰了,UDP 协议才是新世代的未来?

    TCP 协议可以说是今天互联网的基石,作为可靠的传输协议,在今天几乎所有的数据都会通过 TCP 协议传输,然而 TCP 在设计之初没有考虑到现今复杂的网络环境,当你在地铁上或者火车上被断断续续的网络折 ...