【发布时间】:2018-01-07 20:53:58
【问题描述】:
我有一个实体锦标赛如下:
class Tournament {
//other attributes
private LocalDate startDate;
private LocalDate endDate;
}
这表示从 startDate 到 enddate 持续数天/数月的锦标赛。 我需要使用 Spring JPA 和分页检索今天运行的所有锦标赛,例如 startDate = today。
我找到的最接近的是:
@Repository
public interface TournamentRepository extends PagingAndSortingRepository<Tournament, Long> {
Page<Tournament> findByStartBeforeAndEndAfter(LocalDate date, LocalDate dateCopy, Pageable page); //today's date is passed as date and dateCopy
}
方法调用:
tournamentRepository.findByStartBeforeAndEndAfter(LocalDate.now(), LocalDate.now(), page);
这可以解释为 startDate today,因此如果锦标赛在今天运行且仅持续 1 天,则它不起作用。
有没有更好的方法来使用 Spring JPA 而无需编写自定义查询?
【问题讨论】:
-
你试过
findByStartDateLessThanEqualAndEndDateGreaterThanEqual吗? official documentation 阐明LessThanEqual和GreaterThanEqual是受支持的关键字。
标签: java spring hibernate spring-mvc spring-data-jpa