检查其他两个日期之间的日期 春季数据 jpa

我有这个模型:

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);
}

我想做的是,我将通过一个日期,并需要检查该日期是否介于 和 之间,例如(我将通过 9 月 30 日作为日期,需要查找所有在 9 月 30 日和 9 月 30 日之间的条目startendstartend)

类似的东西 ?findDateisBetweenStartAndEnd(Date date)


答案 1

您应该查看参考文档。这很好解释。

在你的情况下,我认为你不能使用中间,因为你需要传递两个参数

Between - findByStartDateBetween ...其中 x.startDate 介于 ?1 和 ?2 之间

在您的情况下,请查看使用或与或的组合LessThanLessThanEqualGreaterThanGreaterThanEqual

  • 小于/小于等于

LessThan - findByEndLessThan ...其中 x.start< ?1

LessThanEqual findByEndlessThanEqual ...其中 x.start <= ?1

  • 大于/大于等于

GreaterThan - findByStartGreaterThan ...其中 x.end> ?1

GreaterThanEqual - findByStartGreaterThanEqual ...其中 x.end>= ?1

您可以使用运算符并组合两者。AndOr


答案 2

我确实使用以下解决方案:

findAllByStartDateLessThanEqualAndEndDateGreaterThanEqual(OffsetDateTime endDate, OffsetDateTime startDate);

推荐