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

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

작성한 질문수

실전! Querydsl

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

동적 order by..

작성

·

236

0

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

답변 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"));

 

감사합니다.

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

작성한 질문수

질문하기