본문 바로가기
Spring/JPA

Query Method 예제 - 4 (정렬)

by step 1 2021. 7. 17.
반응형

상위 데이터 1개를 가져오는 구문

List<User> findTop1ByName(String name);

테스트 코드

System.out.println("findTop1ByName: " + userRepository.findTop1ByName("martin"));

확인

 

마지막 한 줄을 가져오는 구문(정렬 후에 마지막 한줄을 가져온다.)

// 역순으로 정렬해서 마지막 한줄을 출력하는 예제
List<User> findTopByNameOrderByIdDesc(String name)

테스트 코드

System.out.println("findTopByNameOrderByIdDesc: " + userRepository.findTopByNameOrderByIdDesc("martin"));

확인

 

다중 정렬을 사용하는 예제

// Id의 역순, Email의 정순으로 정렬하여 출력
List<User> findFirstByNameOrderByIdDescEmailAsc(String name);

테스트 코드

System.out.println("findFirstByNameOrderByIdDescEmailAsc: " + userRepository.findFirstByNameOrderByIdDescEmailAsc("martin"));

확인

 

사용자가 직접 정렬 기준을 정하는 예제

// 사용자가 정렬기준을 파라미터로 전달하는 예제
List<User> findFirstByName(String name, Sort sort);

테스트 코드

System.out.println("findFirstByName: " + userRepository.findFirstByName("martin", Sort.by(Sort.Order.asc("email"))));

확인

 

정렬 메소드를 별도로 작성하여 코드를 줄이는 방법

정렬 메소드 작성

private Sort getSort(){
        return Sort.by(
                Sort.Order.desc("id"),
                Sort.Order.asc("email"),
                Sort.Order.desc("createdAt")
        );
    }

테스트 코드

// 정렬을 메소드로 이용하여 사용하는 방법
System.out.println("findFirstByName: " + userRepository.findFirstByName("martin", getSort()));

확인

반응형

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

Entity 기본 속성  (0) 2021.07.18
Query Method 예제 - 5(페이징 처리)  (0) 2021.07.17
Query Method 예제 - 3  (0) 2021.07.17
QueryMethod 예제 2  (0) 2021.07.17
Query Method 구현 1  (0) 2021.07.17