Java 用于Joda时间比较的JPA规范

Java 用于Joda时间比较的JPA规范,java,spring-data-jpa,jodatime,Java,Spring Data Jpa,Jodatime,我正在尝试使用JPA规范获取特定范围的订单 请找到下面的代码和我的域类。日期类型来自Joda Time,但无法与该日期匹配 public static Specification<BnvOrder> byStatusChangedDateRange(String statusName, String fromDate, String toDate) { DateTimeFormatter format = DateTimeFormat.forPattern("YYYY

我正在尝试使用JPA规范获取特定范围的订单

请找到下面的代码和我的域类。日期类型来自Joda Time,但无法与该日期匹配

public static Specification<BnvOrder> byStatusChangedDateRange(String statusName, String fromDate, String toDate) {
        DateTimeFormatter format = DateTimeFormat.forPattern("YYYY-MM-dd");
        LocalDateTime fromDateTime = format.parseLocalDateTime(fromDate);
//      LocalDateTime toDateTime = format.parseLocalDateTime(toDate+" 00:00:00");
        return new Specification<BnvOrder>() {
            @Override
            public Predicate toPredicate(Root<BnvOrder> root, CriteriaQuery<?> query, CriteriaBuilder cb) {

//              return cb.and(cb.lessThanOrEqualTo(root.<LocalDateTime>get(statusName), fromDateTime),
//                      cb.greaterThanOrEqualTo(root.<LocalDateTime>get(statusName), toDateTime));
//              cb.greaterThanOrEqualTo("DATE("+root.get("deliveryEndDate")+")", fromDateTime);
                return cb.between(root.get("deliveryEndDate"),fromDateTime,fromDateTime);
            }
        };
    }

事实上,它对我来说工作正常,如果它的LocalDateTime数据类型是fromDateTime和fromDateTime之间的同一个参数吗?在这种情况下,你没有真正的范围,但一个单一的点。提供更多信息您的实际问题是什么-您是否遇到异常或未找到您希望找到的数据?如果是后者,则显示数据和查询参数的示例。