order by 의 동적 정렬에 대한 질문입니다.
1112
작성한 질문수 2
JPAQuery<User> content = query.selectFrom(user)
.where(
searchQueryCustom(keyword, search),
getIn(userIdListFilterByLanguage)
).orderBy(getSorting(pageable), getDirectionByName(pageable));
private OrderSpecifier<Integer> getSorting(Pageable pageable) {
for (Sort.Order order : pageable.getSort()) {
Order direction = order.getDirection().isAscending() ? Order.ASC : Order.DESC;
switch (order.getProperty()) {
case "email":
return new OrderSpecifier(direction, user.email);
case "sortKorean":
return new OrderSpecifier(direction, new CaseBuilder()
.when(user.name.between("가", "힣")).then(1)
.when(user.name.between("a", "Z")).then(2)
.otherwise(3));
case "sortEnglish":
return new OrderSpecifier(direction, new CaseBuilder()
.when(user.name.between("a", "Z")).then(1)
.when(user.name.between("가", "힣")).then(2)
.otherwise(3));
}
}
return null;
}
private OrderSpecifier<?> getDirectionByName(Pageable pageable) {
for (Sort.Order order : pageable.getSort()) {
return order.getDirection().isAscending() ? user.name.asc() : user.name.desc();
}
return null;
}
select user0_.name
from users user0_
where user0_.uuid in
('0685167f0ebd4d128c8607044e893e60', '081b37bc3661429395d366f015f55f9c', '099dcb0174bd4de693226d8785499431')
order by case when user0_.name between '가' and '힣' then 1 when user0_.name between 'a' and 'Z' then 2 else 3 end asc,
user0_.name asc
limit 10;
select user0_.name
from users user0_
where user0_.uuid in
('0685167f0ebd4d128c8607044e893e60', '081b37bc3661429395d366f015f55f9c', '099dcb0174bd4de693226d8785499431')
order by case when user0_.name between '가' and '힣' then 1 when user0_.name between 'a' and 'Z' then 2 else 3 end ,
user0_.name asc
limit 10;
어떻게 해야할까요.........
답변 1
join에대해 질문드립니다.
0
23
1
SpringBoot 4.X에서의 Querydsl 설정
0
175
2
querydsl 오픈소스에 대한 질문
1
103
1
예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?
0
128
1
Querydsl 6.X버전에 대해서 어떻게 생각하시나요?
0
359
2
여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요
1
88
1
fetchResults()는 더이상 권장되지 않는다는데 맞나요?
0
174
1
querydsl sum() 메서드 없어요.
0
172
2
build 디렉터리 생성
0
154
2
자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?
0
125
2
현재 Querydsl에서 from절 서브쿼리를 지원하나요?
0
101
1
오타 제보 드립니다.
0
80
2
벌크 연산과 flush, clear
0
85
1
Run As Intellij 로 변경시 Q타입 import 불가
0
98
1
QHello import하기 문제 발생
0
158
2
등록된 함수 보는법(H2Dialect) 질문
0
81
2
5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의
1
209
2
[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??
1
215
1
querydsl 설정 문제
0
230
2
quey dsl 설정부분
0
169
2
count 쿼리 관련 질문입니다!
0
80
1
stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.
0
101
1
답변부탁드리겠습니다.
0
95
2
(OrderSpecifier)관련 내용 어디있을가요
0
68
1





