首页 > 解决方案 > 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);
 }

我的仓库包含 JSON 对象,例如:

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

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

标签: javaspringspring-data-jpa

解决方案


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

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

我相信它可以帮助你。


推荐阅读