해결된 질문
작성
·
209
·
수정됨
답변 1
0
안녕하세요. 닉네임님, 공식 서포터즈 y2gcoder입니다.
보내주신 코드 살펴봤습니다!
먼저 해당 테스트 코드에서 발생한 에러를 확인해보고 싶으시다면 catch 문 내에 에러를 출력하는 프린트 문 하나를 추가해주시면 디버깅할 때 아주 좋습니다!
저도 테스트 해봤을 때, 동일한 에러가 발생했고,
error: org.hibernate.query.SemanticException: Select item at position 1 in select list has no alias (aliases are required in CTEs and in subqueries occurring in from clause)
살펴보니 에러에서 말하는 것처럼 from 절 내의 서브쿼리가 조회하는 대상 칼럼이 2개 였고, 별칭이 따로 없었습니다!
그래서
//when
List<Double> resultList = em.createQuery("select avg(m.mAge) from (select mm.username as mUsername, mm.age as mAge from Member mm) m", Double.class)
.getResultList();
다음과 같이 서브 쿼리 대상 칼럼에 별칭을 붙여주니 정상적으로 쿼리가 나가는 모습을 볼 수 있었습니다!
감사합니다.
링크
1. 문제 영역을 실행할 수 있는 방법
test/java/section10/SubQueryTest
의 test5 함수 실행시키면 됩니다.2. 문제가 어떻게 나타나는지에 대한 상세한 설명
test5 함수를 실행시켰을 때, 쿼리가 날아가길 기대하였지만, 날아가지 않는 문제 있습니다.