74

私はこのモデルを持っています:

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日付として 9 月 30 日を渡し、 と の間に 9 月 30 日のすべてのエントリを検索する必要がありますstart) end

みたいなfindDateisBetweenStartAndEnd(Date date)

4

5 に答える 5

119

リファレンス ドキュメント を参照してください。よく説明されています。

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

Between - findByStartDateBetween … x.startDate は ?1 と ?2 の間

あなたの場合、LessThanorLessThanEqualGreaterThanorの組み合わせを使用するように見てくださいGreaterThanEqual

  • LessThan/LessThanEqual

LessThan - findByEndLessThan … where x.start< ?1

LessThanEqual findByEndLessThanEqual … ここで x.start <= ?1

  • GreaterThan/GreaterThanEqual

GreaterThan - findByStartGreaterThan … where x.end> ?1

GreaterThanEqual - findByStartGreaterThanEqual … x.end>= ?1 の場合

演算子AndandOrを使用して、両方を組み合わせることができます。

于 2016-09-30T07:36:35.113 に答える