Spring

[Spring] querydsl - 임의의 기준으로 정렬을 하고 싶다면

퉁그리 2022. 1. 5. 00:04
NumberExpression<Integer> rankPath = new CaseBuilder()
   .when(member.age.between(0, 20)).then(2)
   .when(member.age.between(21, 30)).then(1)
   .otherwise(3);
   
List<Tuple> result = queryFactory
    .select(member.username, member.age, rankPath)
    .from(member)
    .orderBy(rankPath.desc())
    .fetch();
    
for (Tuple tuple : result) {
    String username = tuple.get(member.username);
    Integer age = tuple.get(member.age);
    Integer rank = tuple.get(rankPath);
    System.out.println("username = " + username + " age = " + age + " rank = " + rank);
}

이런식으로 새 행을 만들어 우선순위를 매기고 그 기준으로 정렬을 하면 된다.

 

 

출처 : 실전! Querydsl - 인프런 | 학습 페이지 (inflearn.com)