1. ホーム
  2. java

2つの日付の間にある日付をチェックする spring data jpa

2023-12-04 06:29:02

質問

このようなモデルを持っています。

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

私がやりたいことは、ある日付を渡して、その日付が次の日付の間にあるかどうかをチェックすることです。 startend 例: (9月30日を日付として渡し、9月30日が startend )

次のような findDateisBetweenStartAndEnd(Date date) ?

どのように解決するのですか?

次のページをご覧ください。 参照ドキュメント . よく説明されています。

あなたの場合、2つのパラメータを渡す必要があるため、betweenは使えないと思います。

- findByStartDateBetween ... where x.startDate between ?1 and ?2

あなたのケースでは、次の組み合わせを使用するために見てみましょう。 LessThan または LessThanEqualGreaterThan または GreaterThanEqual

  • LessThan/LessThanEqual(レス・タン・イコール)。

LessThan - findByEndLessThan ... where x.start< ?1

LessThanEqual findByEndLessThanEqual ... where x.start <= ?1

  • GreaterThan/GreaterThanEqual(大なり小なり)。

GreaterThan - findByStartGreaterThan ... where x.end> ?1

GreaterThanEqual - findByStartGreaterThanEqual ... where x.end>= ?1

演算子として AndOr で両者を結合します。