当前位置: 首页 > 工具软件 > Java2JPA > 使用案例 >

java spring boot jpa Specification 查询 日期区间

漆雕嘉茂
2023-12-01

java spring boot jpa Specification 查询 日期区间
需求sql

select * FROM book where tenantId=1 and clockIn between "2022-05-01" and "2022-05-31"

具体代码如下

        LocalDate finalFirstDayOfMonth = LocalDate.parse("2022-05-01");
        LocalDate finalLastDayOfMonth = LocalDate.parse("2022-05-31");
        log.info("finalFirstDayOfMonth={}", finalFirstDayOfMonth);
        log.info("finalLastDayOfMonth={}", finalLastDayOfMonth);
        Specification<Book> specification = (root, criteriaQuery, cb) -> {
            List<Predicate> list = Lists.newArrayList();
            //
            list.add(cb.equal(root.get("tenantId"), "1"));
            //
            list.add(cb.between(root.get("clockIn").as(LocalDate.class), finalFirstDayOfMonth, finalLastDayOfMonth));
            //
            return cb.and(list.toArray(new Predicate[list.size()]));
        };
        Optional<List<Book>> all = findAll(specification);
 类似资料: