날짜 & 시간 필터링 구현

최연재·2022년 7월 10일
0

기술 구현

목록 보기
1/3
    1. JpaRepository
    1. 다중 필터링
    1. 주의 사항

1. JpaRepository

  • JpaRepository만 잘 사용해도 기본적인 필터링 기능을 구현할 수 있을 것이라고 생각한다.

1. JpaRepository 정의 및 설명

(1) Spring Data JPA에서 제공하는 인터페이스
(2) 인터페이스에 따로 @Repository등의 어노테이션을 추가할 필요가 없다.

2. 사용법

JpaRepository를 상속받을 때는 사용될 Entity 클래스와 ID값이 들어가게 된다.
public interface ItemRepository extends JpaRepository<Item, Long>

3. 기본 기능(단순히 상속하는 것만으로도 아래 기능 제공)

(1) save()
(2) findOne()
(3) findAll()
(4) count()
(5) delete()

4. Query 메소드 추가

\to 규칙에 맞는 메서드를 작성해야 한다.
(1) findBy로 시작 => 쿼리를 요청하는 메서드
(2) countBy로 시작 => 쿼리 결과 레코드 수를 요청하는 메서드
(3) 실제 사용

	List<Item> findByDateBetween(LocalDate start, LocalDate end); // start 시간부터 end시간까지
	List<Item> findByPriceBetween(Long min, Long max); // min 가격부터 max 가격까지

2. 다중 필터링

  • And와 Or을 사용하여 다중 필터링을 구현할 수 있다.
    List<Item> findByDateBetweenAndPriceBetween(LocalDate start, LocalDate end, Long min, Long max);
    List<Item> findByDateBetweenOrPriceBetween(LocalDate start, LocalDate end, Long min, Long max);

3. 주의 사항

  • API를 통하여 start와 end 같은 시간을 가져올 때, @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) 등의 방식을 추가해야지 시간으로 입력이 받아짐.

profile
가보자고

0개의 댓글