我有这个型号:
public class Event {
private String name;
private Date start;
private Date end;
}
和存储库
@Repository
public interface EventRepository extends JpaRepository<Event, Long> {
List<Event> findByEventTypeAccount(Account account);
}
我想要做的是,我将传递一个日期,并且需要检查日期是否在start
和end
之间,例如(我将在9月30日作为日期通过,并且需要查找所有条目他们在start
和end
)
像findDateisBetweenStartAndEnd(Date date)
?
答案 0 :(得分:61)
你应该看看the reference documentation。它解释得很好。
在你的情况下,我认为你不能在两者之间使用,因为你需要传递两个参数
介于之间 - findByStartDateBetween ...其中x.startDate介于?1和?2之间
在您的情况下,请考虑使用LessThan
或LessThanEqual
与GreaterThan
或GreaterThanEqual
LessThan - findByEndLessThan ...其中x.start&lt; λ1
LessThanEqual findByEndLessThanEqual ...其中x.start&lt; =?1
GreaterThan - findByStartGreaterThan ...其中x.end&gt; λ1
GreaterThanEqual - findByStartGreaterThanEqual ...其中x.end&gt; =?1
您可以使用运营商And
和Or
来合并两者。
答案 1 :(得分:18)
我确实使用了以下解决方案:
--cgroups_root
答案 2 :(得分:3)
您还可以使用@Query
@Query(value = "from EntityClassTable t where yourDate BETWEEN :startDate AND :endDate")
public List<EntityClassTable> getAllBetweenDates(@Param("startDate")Date startDate,@Param("endDate")Date endDate);
答案 3 :(得分:1)
也许您可以尝试
List<Article> findAllByPublicationDate(Date publicationDate);
可以在本文中查看详细信息: