私はこのモデルを持っています:
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);
}
私がしたいことは、1つの日付を渡し、その日付がstart
とend
の間にあることを確認する必要があることです。 start
とend
の間)
findDateisBetweenStartAndEnd(Date date)
のようなものですか?
ご覧ください リファレンスドキュメント 。それはよく説明されています。
あなたの場合、2つのパラメータを渡す必要があるため、間に使用することはできません
Between-findByStartDateBetween…where x.startDate between?1 and?2
あなたの場合は、LessThan
またはLessThanEqual
とGreaterThan
またはGreaterThanEqual
の組み合わせを使用してください。
LessThan-findByEndLessThan…where x.start <?1
LessThanEqual findByEndLessThanEqual…ここで、x.start <=?1
GreaterThan-findByStartGreaterThan…where x.end>?1
GreaterThanEqual-findByStartGreaterThanEqual…ここで、x.end> =?1
演算子And
とOr
を使用して、両方を組み合わせることができます。
私はこれに次の解決策を使用しました:
findAllByStartDateLessThanEqualAndEndDateGreaterThanEqual(OffsetDateTime endDate, OffsetDateTime startDate);
@Query
を使用してカスタムクエリを作成することもできます
@Query(value = "from EntityClassTable t where yourDate BETWEEN :startDate AND :endDate")
public List<EntityClassTable> getAllBetweenDates(@Param("startDate")Date startDate,@Param("endDate")Date endDate);