Querydsl 에서 동적 sorting을 위해 OrderSpecifier 클래스 구현

탄이·2023년 4월 23일
0

Querydsl 에서 동적 sorting을 위해 OrderSpecifier 클래스 구현

필요했던 케이스

- paging 조회 시, 클라이언트가 설정한 정렬 조건 대로 내려줘야 했다.
- 정렬 조건은 가입일 (id가 순서를 보장하지 않는 케이스), 이름 (국영숫), 나이 등의 오름 || 내림차순

OrderSpecifier란?

활용 예제

	private OrderSpecifier getOrderCondition(AccountsSortType accountsSortType,  
      boolean ascending, QAccounts accounts) {  
	   switch (accountsSortType) {  
	      case JOIN_DATE:  
	         return ascending ? accounts.joinDate.asc(): accounts.joinDate.desc();  
	      case NAME:  
	         return ascending ? accounts.name.asc() : accounts.name.desc();  
	      case LAST_LOGIN:  
	         return ascending ? accounts.lastLoginDate.asc()  
	               : accounts.lastLoginDate.desc();  
	      default:  
	         return null;  
	   }  
}
  • 케이스별로 sorting을 진행할 수 있게 구현함
profile
백엔드 개발자의 로그

0개의 댓글