• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

동적 order by..

24.04.29 09:11 작성 조회수 52

0

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

답변 1

답변을 작성해보세요.

0

codesweaver님의 프로필

codesweaver

2024.04.29

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

저는 동적으로 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"));

 

감사합니다.