JPA criteriabuilder java日期对象问题

JPA criteriabuilder java日期对象问题,java,hibernate,jpa,Java,Hibernate,Jpa,当java日期对象等于时,它不会返回任何结果,大于或小于正常工作,但不等于,我需要做什么更改 数据库中的数据类型为日期,值为“2014年1月13日05:00:00”,java模型对象数据类型为java.util.Date,日期值输出为“2014年1月13日星期一05:00:00”。我不知道为什么它为平等而工作 Constraint startDateConstraint = filter.getConstraint(MarketingOfferSearchFilter.Field.READY_D

当java日期对象等于时,它不会返回任何结果,大于或小于正常工作,但不等于,我需要做什么更改

数据库中的数据类型为日期,值为“2014年1月13日05:00:00”,java模型对象数据类型为java.util.Date,日期值输出为“2014年1月13日星期一05:00:00”。我不知道为什么它为平等而工作

Constraint startDateConstraint = filter.getConstraint(MarketingOfferSearchFilter.Field.READY_DATE);
        if (startDateConstraint != null) {
            Expression<Date> startDate = marketingOffer.get(Offer_.startDate);
            Date stDate = DateUtil.convertDifferentDateStringToUTCDate((String) startDateConstraint.getValue());
            if (startDateConstraint.getCompareMode().equals(CompareMode.DATE_BEFORE)) {

                predicates.add(builder.lessThan(startDate, stDate));
            } else if (startDateConstraint.getCompareMode().equals(CompareMode.DATE_AFTER)) {
                predicates.add(builder.greaterThan(startDate, stDate));
            } else {
                predicates.add(builder.equal(startDate, stDate));
            }
        }
Constraint startDateConstraint=filter.getConstraint(MarketingOfferSearchFilter.Field.READY\u日期);
if(startDateConstraint!=null){
表达式startDate=marketingOffer.get(Offer\uuu.startDate);
Date stDate=DateUtil.ConvertDifferentDateStringToutDate((String)startDateConstraint.getValue());
if(startDateConstraint.getCompareMode().equals(CompareMode.DATE_BEFORE)){
add(builder.lessThan(startDate,stDate));
}else if(startDateConstraint.getCompareMode().equals(CompareMode.DATE\u AFTER)){
add(builder.greaterThan(startDate,stDate));
}否则{
add(builder.equal(startDate,stDate));
}
}

可能您正在将带有日期时间/时间戳的日期与额外的HH:mm:sss进行比较?Hi Joop,数据库中的数据类型为日期,值为“13-JAN-14 05:00:00”,日期比较为“Mon JAN 13 05:00:00 PST 2014”。你知道我遗漏了什么吗?你能将日期格式化为数据库日期格式并重试吗?你找到解决方法了吗?如果有日期格式问题,那么为什么它适用于小于和大于的?