where 절에서 alias를 사용하려면 어떻게 해야할까요?
549
작성한 질문수 58
List<UserDto> fetch = queryFactory
.select(Projections.bean(UserDto.class,
member.username.as("name),
ExpressionUtils.as(
JPAExpressions
.select(item.itemCnt.max())
.from(item), "itemCount"))
).from(member)
.fetch();위의 샘플과 같이 member 테이블 안에서 item의 서브쿼리를 사용합니다.
위와같이 작성해서 실행을 하는데는 아무런 문제가 없습니다.
그런데 문제가 되는 부분이
where절에서 서브쿼리로 작성된 itemCount의 범위를 검색을 하려고 하는데 어떤식으로 처리를 해야할지 난감합니다.
이리저리 검색을 해서 아래와 같은 방법으로 비슷하게 구현을 한 방법이 있기는 한데
Path<Long> itemCountAlias = Expressions.numberPath(Long.class, "itemCount");적용을 해 봐도 적용이 안됩니다.ㅠㅠ
오류가 itemCnt 이름의 칼럼이 없습니다.
라는 오류만 뿌려줍니다.
private BooleanExpression whereByItemCond(SearchOption searchOption, Path<Long> aliasQuantity) {
String cnt = searchOption.getSearchCount();
if(searchOption.getSearchType().equals("itemCount")){
return aliasQuantity != null ? aliasQuantity.eq(String.valueOf(cnt)) : null;
}
}
서브쿼리에 추가한 Alias를 조건 검색문에서 검색할려면 어떤식으로 처리를 해야할까요?
혹시 제가 접근 방법을 잘못 알고 있다면 어떤식으로 처리를 해야할까요?
결론적으로 구현하고 싶은 것은
A, B 테이블이 있는데 A테이블에서 서브쿼리로 B테이블의 특정 값을 추가해서 목록으로 뿌려주고 있는데
검색 조건을 A테이블에서가 아닌 B테이블에 있는 값(A+B테이블의 조합으로 만들어진 목록 데이터값)을 필터링해서 검색을 하려고 합니다.
제목 | 작성자 | 아이탬 수
---------------------
첫째 홍길동 4
둘째 김길동 5
셋째 박길동 2
이런식으로 목록을 보여주는 화면이 있는데 제목과 작성자는 member테이블에서, 아이템수는 item 테이블에서 가져왔습니다.
쿼리는 위에서 적은것과 같이 기본 member테이블에서 item테이블을 서브쿼리를 사용해서 값을 추가했습니다. ExPressionUtils.as(JPAExpression.select~~)
여기서 기본검색(?)조건인 제목, 작성자 검색은 문제가 없는데, 서브쿼리로 추가했던 아이템 수로 검색을 하려고 합니다.
B테이블은 A테이블을 ManyToOne으로 설정이 되어 있습니다.
답변 1
0
안녕하세요. 인프러너님
저도 정확히 잘 모르겠습니다. 혹시 도움이 될지 모르니 다음을 참고해주세요.
https://www.inflearn.com/questions/71345/case-%EB%AC%B8
잘 아시는 분이 있으면 답변 부탁드립니다.
감사합니다.
SpringBoot 4.X에서의 Querydsl 설정
0
109
2
querydsl 오픈소스에 대한 질문
1
85
1
예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?
0
117
1
Querydsl 6.X버전에 대해서 어떻게 생각하시나요?
0
331
2
여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요
1
74
1
fetchResults()는 더이상 권장되지 않는다는데 맞나요?
0
164
1
querydsl sum() 메서드 없어요.
0
163
2
build 디렉터리 생성
0
142
2
자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?
0
117
2
현재 Querydsl에서 from절 서브쿼리를 지원하나요?
0
95
1
오타 제보 드립니다.
0
74
2
벌크 연산과 flush, clear
0
78
1
Run As Intellij 로 변경시 Q타입 import 불가
0
90
1
QHello import하기 문제 발생
0
150
2
등록된 함수 보는법(H2Dialect) 질문
0
71
2
5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의
1
201
2
[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??
1
204
1
querydsl 설정 문제
0
223
2
quey dsl 설정부분
0
159
2
count 쿼리 관련 질문입니다!
0
75
1
stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.
0
90
1
답변부탁드리겠습니다.
0
92
2
(OrderSpecifier)관련 내용 어디있을가요
0
67
1
중급문법 벌크연산에서
0
84
2





