Java Spring JPA方法查找具有Before和Equal日期以及Before和Equal日期的实体
我有一个实体锦标赛如下:Java Spring JPA方法查找具有Before和Equal日期以及Before和Equal日期的实体,java,spring,hibernate,spring-mvc,spring-data-jpa,Java,Spring,Hibernate,Spring Mvc,Spring Data Jpa,我有一个实体锦标赛如下: class Tournament { //other attributes private LocalDate startDate; private LocalDate endDate; } 这代表了从开始日期到结束日期持续数天/数月的锦标赛。 我需要使用Spring JPA和分页检索今天运行的所有锦标赛,比如startDate=today 我发现最接近的是: @Repository public interface TournamentRep
class Tournament {
//other attributes
private LocalDate startDate;
private LocalDate 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
}
这可以解释为startDate@Repository
public interface TournamentRepository extends PagingAndSortingRepository<Tournament, Long> {
@Query("Select t from Tournament t where t.startDate <= CURRENT_DATE and t.endDate >= CURRENT_DATE")
Page<Tournament> findByStartBeforeAndEndAfter(Pageable page);
}
@存储库
公共接口TournamentRepository扩展了分页和排序存储库{
@查询(“从锦标赛t中选择t,其中t.startDate=当前日期”)
页面查找系统启动前和启动后(可分页页面);
}
是JPA中预定义的函数。你可以用这个
试试这个
@Repository
public interface TournamentRepository extends PagingAndSortingRepository<Tournament, Long> {
@Query("Select t from Tournament t where t.startDate <= CURRENT_DATE and t.endDate >= CURRENT_DATE")
Page<Tournament> findByStartBeforeAndEndAfter(Pageable page);
}
@存储库
公共接口TournamentRepository扩展了分页和排序存储库{
@查询(“从锦标赛t中选择t,其中t.startDate=当前日期”)
页面查找系统启动前和启动后(可分页页面);
}
您可以使用@Query
注释编写他自己的查询,如下面的代码所示
@Repository
public interface TournamentRepository extends PagingAndSortingRepository<Tournament, Long> {
@Query("select t from Tournament t where t.startDate <=:date and t.endDate >=: dateCopy")
Page<Tournament> findByStartBeforeAndEndAfter(@Param("date")LocalDate date,@Param("dateCopy") LocalDate dateCopy, Pageable page); //today's date is passed as date and dateCopy
}
您可以使用
@Query
注释编写他自己的查询,如下代码所示
@Repository
public interface TournamentRepository extends PagingAndSortingRepository<Tournament, Long> {
@Query("select t from Tournament t where t.startDate <=:date and t.endDate >=: dateCopy")
Page<Tournament> findByStartBeforeAndEndAfter(@Param("date")LocalDate date,@Param("dateCopy") LocalDate dateCopy, Pageable page); //today's date is passed as date and dateCopy
}
您可以将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
}
@存储库
公共接口TournamentRepository扩展了分页和排序存储库{
Page FindByCreaterTanequalStartDateAndLessThanequalEndDate(LocalDate日期、LocalDate日期副本、可分页页面);//今天的日期作为日期和日期副本传递
}
您可以使用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
}
@存储库
公共接口TournamentRepository扩展了分页和排序存储库{
Page FindByCreaterTanequalStartDateAndLessThanequalEndDate(LocalDate日期、LocalDate日期副本、可分页页面);//今天的日期作为日期和日期副本传递
}
您是否尝试过FindBystartDateLesstAnequal
?说明了LessThanEqual
和GreaterThanEqual
是受支持的关键字。您是否尝试过查找系统启动日期lessthanequalandedatageraterhanequal
?说明小于等于
和大于等于
是受支持的关键字。