【发布时间】:2016-04-07 19:26:44
【问题描述】:
我正在使用 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)));
如果条件恰好落在其中一个端点上,则此查询不会返回任何结果。
【问题讨论】:
-
lessThanOrEqualTo,greaterThanOrEqualTo?除此之外,您必须发布生成的 SQL,因为在不发布 SQL 的情况下调试这样的事情有点毫无意义
-
来吧,尼尔,你不需要看 SQL 来理解这个问题。 “之间”不包括端点,这在他们的文档中。我想包括端点。听起来 lessThanOrEqualTo,greaterThanOrEqualTo 是这里的答案。
标签: hibernate date jpa range jpa-2.1