programing

다른 두 날짜 사이의 날짜를 확인합니다. 스프링 데이터 jpa

lastmoon 2023. 4. 2. 11:49
반응형

다른 두 날짜 사이의 날짜를 확인합니다. 스프링 데이터 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);
}

내가 하고 싶은 것은, 나는 날짜를 하나 넘기고 그 날짜가 다음 사이에 있는지 확인해야 한다는 것이다.start그리고.end예: 9월 30일을 넘기고, 9월 30일 사이에 있는 엔트리를 모두 찾아야 합니다.start그리고.end)

뭐랄까findDateisBetweenStartAndEnd(Date date)?

레퍼런스 매뉴얼을 참조해 주세요.설명이 잘 되어 있어요.

당신의 경우, 두 개의 매개 변수를 전달해야 하기 때문에 그 사이에 사용할 수 없다고 생각합니다.

between - findByStartDateBetween...여기서 x.startDate는 ?1 ~ ?2 입니다.

이 경우, 다음의 조합의 사용법을 참조해 주세요.LessThan또는LessThanEqual와 함께GreaterThan또는GreaterThanEqual

  • 같음/같음보다 작음

Less Than - find By EndLess그 후 x.start < ? 1 >

동등하지 않은 findByEndLessThanEqual... 여기서 x.start <=?1

  • 더 큰 것/더 큰 것동등.

Greater Than - find By Start Greater그 후 x.end> ?1

GreaterThanEqual - findByStartGreaterThan Equal …여기서 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);

편집: LocalDateTime의 경우 이 솔루션을 사용하여 봄 JPA의 날짜 및 유형에 따라 레코드를 필터링했습니다.

Page<MyEntity> findMyEntityByEntityDateBetweenAndType(
            @Param("startDate") LocalDateTime startDate,
            @Param("endDate") LocalDateTime endDate, @Param("type") String type, Pageable pageable);

여기서 EntityDate는 CreatedDate, ModifiedDate 등입니다.

한번 시도해 보세요

List<Article> findAllByPublicationDate(Date publicationDate);

상세한 것에 대하여는, 다음의 기사를 참조해 주세요.

https://www.baeldung.com/spring-data-jpa-query-by-date

JpaRepository를 사용할 수 있습니다.

List<Entity> findByColumnDateBetween(LocalDateTime to, LocalDateTime from);

언급URL : https://stackoverflow.com/questions/39784344/check-date-between-two-other-dates-spring-data-jpa

반응형