gpt4 book ai didi

java - Spring JPA 方法查找具有 beforeAndEqual 日期和 afterAndEqual 日期的实体

转载 作者:行者123 更新时间:2023-12-01 17:55:22 24 4
gpt4 key购买 nike

我有一个实体锦标赛如下:

class Tournament {
//other attributes
private LocalDate startDate;
private LocalDate endDate;
}

这代表从开始日期到结束日期持续几天/几个月的锦标赛。我需要使用 Spring JPA 和分页检索今天运行的所有锦标赛,例如 startDate <= 今天 && endDate >= 今天

我发现的最接近的如下:

@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 && endDate > Today,因此如果锦标赛在今天进行且仅持续 1 天,则该方法不起作用。

是否有更好的方法使用 Spring JPA 来执行此操作,而无需编写自定义查询?

最佳答案

您可以将 LessThan、GreaterThan、LessThanEqual、GreaterThanEqual 与日期一起使用。

@Repository
public interface TournamentRepository extends PagingAndSortingRepository<Tournament, Long> {

Page<Tournament> findByGreaterThanEqualStartDateAndLessThanEqualEndDate(LocalDate date, LocalDate dateCopy, Pageable page); //today's date is passed as date and dateCopy

}

关于java - Spring JPA 方法查找具有 beforeAndEqual 日期和 afterAndEqual 日期的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45430202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com