인프런 커뮤니티 질문&답변

심모님의 프로필 이미지
심모

작성한 질문수

실전! Querydsl

서브 쿼리

select절 서브쿼리 tuple에서 읽는방법

작성

·

605

0

안녕하세요 영한님.

밑에 비슷한 질문이 있었는데 해결이 되지않아 질문드립니다.

//모든이름과 평균나이 출력
QMember memberSub = new QMember("memberSub");

List<Tuple> result = queryFactory
.select(member.username,
JPAExpressions
.select(memberSub.age.avg())
.from(memberSub)
)
.from(member)
.fetch();

for (Tuple tuple : result) {
System.out.println(tuple.get(member.username));
System.out.println(tuple.get(1, Double.class));
}

강의에서 코드인데요

여기서 평균나이값을 tuple에서 뽑고싶어서

tuple.get(memberSub.age.avg()) 로 뽑아봤는데 값이

null이 나옵니다. 그래서 현재는 Index와 클래스로 뽑긴했는데 member.username처럼 바로뽑는법이 있을까요?

항상 감사합니다.

 

답변 3

0

스크린샷 2024-04-18 오후 3.26.43.png저도 계속 이것저것해보다가 이렇게하니까 값 뽑아낼수가있네요 혹시 저처럼 이런 방법 찾아서 이 글까지 오시는분들은 참고하셔도 될꺼같습니다! (맞는방법인지는 모르겠어요 ㅠㅜ)

0

심모님 혹시 저 문제 해결하셨나요? ExpressionUtils.as() 이걸로 서브쿼리 별칭을 주는 것까지는 됬는데

저거를 tuple에서 직접 뽑아내는건 get() 외에 다른 방법은 못찾겠더라구요.

뭔가 좀 더 배우면 DTO에 담아서 뽑아낼 수도 있을 것 같긴하거든요.

혹시 방법 찾으셨으면 공유 부탁드려도 될까요?

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 심모님

다음을 읽어보시면 ExpressionUtils.as()를 사용하는 부분이 있는데요. 이 부분을 참고해주세요.

https://jojoldu.tistory.com/379

감사합니다.

 

심모님의 프로필 이미지
심모

작성한 질문수

질문하기