1 回答

TA贡献1993条经验 获得超5个赞
我不倾向于使用 Criteria API,可能还有另一种方式,但您可以使用 between 运算符,如下所示:
private List<Predicate> getPredicates(CriteriaBuilder cb, Root<Flight> c,
Date departureDate) {
List<Predicate> predicates = new ArrayList<>();
//remove time portion from specified date: now dd/mm/yy 00:00
Date startDate = DateUtils.truncate(departureDate, Calendar.DATE);
//new date with time initialized to 23:59:59
Date endDate = DateUtils.addSeconds(DateUtils.addDays(startDate, 1), - 1);
predicates.add(cb.between(c.get(Flight_.departureDate), startDate, endDate));
return predicates;
}
DateUtils 是 Commons Lang 中的一个类:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
添加回答
举报