Spring Data JPA 返回具有指定范围的日期列表(开始日期和结束日期)



当前,我正在尝试返回一个日期位于参数给定范围内的对象列表。。。但是,当我运行rest api调用时,不会返回任何内容。我不确定我是否正确地执行了这个Spring JPA请求,并决定获得一些反馈,无论我所做的事情是否不正确。

这里有一些简短的伪代码:

对象模型

public class mResult{
/* other variables */
LocalDate runDate;
}

回购

public interface mResultRepository extends CrudRepository<mResult,String> {
List<mResult> findAllByRunDateBetween(LocalDate startDate,LocalDate endDate);
}

服务

mResultRepository mRepository;
public List<mResult> getAllBetweenDates(LocalDate startDate, LocalDate endDate){
return mRepository.findAllByRunDateBetween(startDate,endDate);
}

我的repo包含JSON对象,例如:

{"runDate": "2019-02-05"}
{"runDate": "2019-02-06"}
{"runDate": "2019-02-10}

如果我的范围是2019-02-01到2019-02-09,那么它应该只返回这个范围内的值。但是,当我运行API请求时,不会返回任何内容。我的Spring JPA请求正确吗?TIA-

前一段时间我也遇到了同样的问题,我试图从数据库级别获得解决方案,但我没有找到任何合适的方法来在数据库级别解决,所以我更希望它从Java端解决,作为下面给出的示例代码。

List<LocalDate> runningDates = Stream.iterate(startDate, date -> date.plusDays(1))
.limit(ChronoUnit.DAYS.between(startDate, endDate.plusDays(1)))
.collect(Collectors.toList());

我相信这对你有帮助。

我在控制器中添加了@DateTimeFormat注释。事实证明,Spring JPA请求是正确的,但它没有采用我的"yyyy-MM-dd"格式。

最新更新