Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 如何编写JPA条件查询来查找日期范围内的对象并包括该日期范围的端点?_Hibernate_Date_Jpa_Range_Jpa 2.1 - Fatal编程技术网

Hibernate 如何编写JPA条件查询来查找日期范围内的对象并包括该日期范围的端点?

Hibernate 如何编写JPA条件查询来查找日期范围内的对象并包括该日期范围的端点?,hibernate,date,jpa,range,jpa-2.1,Hibernate,Date,Jpa,Range,Jpa 2.1,我正在使用JPA2.1和Hibenrate 5.1.0.Final。如何编写JPA CriteriaBuilder查询,在其中查询日期范围内的对象,并希望在查询中包含日期范围的端点?我注意到下面的代码 final java.util.Date searchDate = objectDate.toDateTimeAtStartOfDay().toDate(); final ParameterExpression<Date> d = builder.parameter(Date.

我正在使用JPA2.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)));
final java.util.Date searchDate=objectDate.toDateTimeAtStartOfDay().toDate();
最终参数expression d=builder.parameter(Date.class);
请问,在哪里(
…
builder.between(d,objectRoot.get(MyObject_.objectDate),objectRoot.get(MyObject_.objectEndDate));

如果条件正好落在某个端点上,此查询将不会返回任何结果。

有关日期字段的问题几乎总是由于时间组件造成的。由于searchDate是日期开始时(DD-MON-YY 12:00am)的时间,因此在与低端进行比较时,由于时间差异,两者可能不匹配。

越少越好?除此之外,您还必须发布生成的SQL,因为在不发布SQL的情况下调试类似的东西有点毫无意义。尼尔,我说,您不需要查看SQL就可以理解这个问题。“中间”不包括端点,这在它们的文档中。我想包括端点。这里的答案似乎是越少越好。