在我的数据库中,有某个预订的开始日期和结束日期。我想获取某个开始日期和结束日期的预订记录。到目前为止,我在仓库中有这个,
List<Booking> findByPickupTimeAfterAndDropoffTimeBefore(Date startDate, Date endDate);
它什么也不返回,但是有一条记录,其中包含我在数据库查询中使用的日期。
NOTE:我在这里使用java.util.Date(忽略新的LocalDateTime包)
我在这里做错什么了?。还有什么其他方法可以获取我期望的数据?
尝试此自定义查询:
@Query(value = "from Booking t where yourDate BETWEEN :startDate AND :endDate")
public List<Booking> getAllBetweenDates(@Param("startDate")Date startDate,@Param("endDate")Date endDate);
您正将same日期传递给JPA方法,就像在数据库中一样,not期望返回数据,因为当日期相同时,日期不是before] >(或after)。
更改使用GreaterThanEqual
和LessThanEqual
关键字的方法:
List<Booking> findByPickupTimeGreaterThanEqualAndDropoffTimeLessThanEqual(Date startDate, Date endDate);