我正在使用JPA 2.1和Hibenrate 5.1.0.Final。如何编写JPA CriteriaBuilder查询,在该查询中我查询日期范围内的对象,并且我想在查询中包含日期范围的端点?我注意到以下代码
final java.util.Date searchDate = objectDate.toDateTimeAtStartOfDay().toDate();
final ParameterExpression<Date> d = builder.parameter(Date.class);
query.where(
…
builder.between(d, objectRoot.<Date>get(MyObject_.objectDate), objectRoot.<Date>get(MyObject_.objectEndDate)));
如果条件完全落在其中一个端点上,则此查询不会返回任何结果。
答案 0 :(得分:0)
有关日期字段的问题几乎总是因为时间成分。由于searchDate是日期开始时的时间(DD-MON-YY 12:00 am),因此与BETWEEN的低端相比可能因时间不同而不匹配。