[SpringBoot JPA] Limit, Order 처리하기

반응형
728x90
반응형

Order BY ID DESC

List<User> findTopByNameOrderByIdDesc(String name);

 

Order BY ID DESC (Limit 3)

List<User> findTop3ByNameOrderByIdDesc(String name); // 역순

 

  • TopN 중 N을 생략하면 1이 default 값이다
List<User> findTopByNameOrderByIdDesc(String name);

 

Order BY ID ASC (Limit 1)

List<User> findTop1ByNameOrderByIdAsc(String name); // 정순

 

 

여러 컬럼의 정렬 (Id Desc, Email Asc)

List<User> findFirstByNameOrderByIdDescEmailAsc(String name); // id desc, email asc

 

 

정렬 조건 Sort 파라미터로 받기

List<User> findFirstByName(String name, Sort sort);

 

  • 1) 메서드 호출
userRepository.findFirstByName("test1", Sort.by(Sort.Order.desc("id"))));

 

  • 2) Sort 메서드 분리
userRepository.findFirstByName("test1", getSort()));

 

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

 

 

 

반응형

Designed by JB FACTORY