강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

플하님의 프로필 이미지
플하

작성한 질문수

실전! Querydsl

스프링 데이터 페이징 활용1 - Querydsl 페이징 연동

동적 order by..

작성

·

373

0

쿼리dsl로 동적인 order by 정렬 처리하는거는 강의에서 안보여주시나요?...ㅠㅠ

퀴즈

71%나 틀려요. 한번 도전해보세요!

스프링 데이터 JPA 사용 시 순수 JPA와 비교하여 개발 생산성 측면에서 얻는 주요 이점은 무엇일까요?

모든 쿼리를 수동으로 복잡하게 작성해야 한다

기본 CRUD(저장, 조회 등) 메서드를 인터페이스만으로 자동으로 제공받는다

모든 동적 쿼리 구현이 항상 완전히 자동화된다

데이터베이스 연결 설정을 직접 XML 파일로 관리해야 한다

답변 1

0

안녕하세요. 리어스리님, 공식 서포터즈 코즈위버입니다.

저는 동적으로 order by를 처리 하기 위해 OrderSpecifier 를 활용했었습니다.

대략 아래와 같은 함수를 만들어 OrderSpecifier<?>를 반환받고 이를 쿼리의 orderBy()의 파라미터로 전달합니다.

public OrderSpecifier<?> orderByExample(String attributeName, String sort) {
    PathBuilder orderPath = new PathBuilder(order.getType(), order.getMetadata());
    if (sort.equals("ASC")) {
       return orderPath.getNumber(attributeName, Integer.class).asc(); 
    }
    return orderPath.getNumber(attributeName, Integer.class).desc();
}

....

query.orderBy(orderByExample("ID", "DESC"));

 

감사합니다.

플하님의 프로필 이미지
플하

작성한 질문수

질문하기