투로드
Coder ToLoad
투로드
전체 방문자
오늘
어제

블로그 메뉴

  • 홈
  • 알고리즘
  • CS
  • GITHUB
  • 태그
  • 분류 전체보기 (69)
    • Toy Project (0)
      • EternalSNS (0)
    • Algorithm (46)
      • BaekJoon (38)
      • Programmers (7)
      • Code Tree (1)
    • Computer Science (13)
      • JAVA (7)
      • DataBase (4)
    • Backend (7)
      • Spring (2)
      • JPA (2)
      • Django (3)
    • Mobile (2)
      • Android (2)
    • Unity (1)

인기 글

최근 글

hELLO · Designed By 정상우.
투로드

Coder ToLoad

[JPA] 특정 날짜 기준으로 조회 및 정렬하기
Backend/JPA

[JPA] 특정 날짜 기준으로 조회 및 정렬하기

2022. 2. 21. 20:53

JPA는 사용하면 할수록 자동으로 쿼리문을 생성해주는 편의성 때문에 좋다고 느끼고 있다.

프로젝트를 진행하면서 날짜를 기준으로 조회 후 정렬을 해야해야 했었는데, 관련 부분을 학습하면서 배운 내용을 정리해두려고 한다.

 


 

특정 날짜 이전으로 조회하기 (Before 사용)

 

@Repository
public interface MeetingRepository extends JpaRepository<Meeting, Integer> {
    Page<Meeting> findAllByMeetingStartDateBefore(LocalDateTime date, Pageable pageable);
}

Entitiy의 날짜가 LocalDateTime으로 구성되어있다면 위와 같이

Date로 구성되어있다면 Date를 사용하면 된다.

 

해당 date에 특정하고 싶은 날짜를 넘겨주면 된다.

만약 현재 시간을 기준으로 이전을 조회한다고 하면 아래와 같이 사용하면 된다.

 @Override
    public Page<Meeting> meetingList(Pageable pageable) {
        LocalDateTime date = LocalDateTime.now();
        return meetingRepository.findAllByMeetingStartDateBefore(date, pageable);
    }

 


 

특정 날짜 이후로 조회하기 (After 사용)

 

@Repository
public interface MeetingRepository extends JpaRepository<Meeting, Integer> {
    Page<Meeting> findAllByMeetingStartDateAfter(LocalDateTime date, Pageable pageable);
}

뒷 부분만 Before에서 After로 변경 후에 해당 date에 특정하고 싶은 날짜를 넘겨주면 된다.

 


특정 날짜 사이 조회하기 (Between 사용)

 

@Repository
public interface MeetingRepository extends JpaRepository<Meeting, Integer> {
    Page<Meeting> findAllByMeetingStartDateBetween(LocalDateTime startDate, LocalDateTime endDate, Pageable pageable);
}

startDate의 시작 날짜, endDate에 끝나는 날짜를 넣어주면 해당 사이의 날짜 결과만 조회한다.

 

 


조회한 값 정렬하기

 

조회 시에 페이징 처리를 하기 위해 Pageable을 같이 넘겨주었는데 이를 이용해 정렬을 할 수 있다.

원하는 컬럼을 Sort.by를 이용해서 오름차순이나 내림차순으로 정렬이 가능하다.

Page<Meeting> meetingPage = meetingService.meetingList(PageRequest.of(page, size, Sort.by(Sort.Direction.ASC, "meetingStartDate")));

 

저작자표시 (새창열림)

'Backend > JPA' 카테고리의 다른 글

[JPA] JPA로 복합키로 구성된 테이블 생성 및 삭제하기  (0) 2022.01.22
    'Backend/JPA' 카테고리의 다른 글
    • [JPA] JPA로 복합키로 구성된 테이블 생성 및 삭제하기
    투로드
    투로드
    훌륭한 프로그래머가 되어가는 과정을 담아보는 중입니다.

    티스토리툴바