inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 ORM 표준 JPA 프로그래밍 - 기본편

서브 쿼리

from절의 서브쿼리 테스트 문제

해결된 질문

414

할 수 있다

작성한 질문수 3

0

[질문 내용]

하이버네이트 6에서 from절의 서브 쿼리 테스트 위해 다음과 같은 쿼리를 작성해서 실행 했는데, 쿼리가 날아가지 않습니다. 잘못된 부분이 있을까요?

스크린샷 2024-06-21 오후 6.02.16.png

java jpa

답변 1

0

김영한

안녕하세요. 닉네임님

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 ZIP파일로 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

 

추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명

링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

1

할 수 있다

링크

1. 문제 영역을 실행할 수 있는 방법

test/java/section10/SubQueryTest의 test5 함수 실행시키면 됩니다.

2. 문제가 어떻게 나타나는지에 대한 상세한 설명

test5 함수를 실행시켰을 때, 쿼리가 날아가길 기대하였지만, 날아가지 않는 문제 있습니다.

1

y2gcoder

안녕하세요. 닉네임님, 공식 서포터즈 y2gcoder입니다.

보내주신 코드 살펴봤습니다!

먼저 해당 테스트 코드에서 발생한 에러를 확인해보고 싶으시다면 catch 문 내에 에러를 출력하는 프린트 문 하나를 추가해주시면 디버깅할 때 아주 좋습니다!

image

저도 테스트 해봤을 때, 동일한 에러가 발생했고,

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();

다음과 같이 서브 쿼리 대상 칼럼에 별칭을 붙여주니 정상적으로 쿼리가 나가는 모습을 볼 수 있었습니다!

image

 

감사합니다.

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

33

2

inheritance startegy 선택시 고려사항

0

24

1

Entity 동등성 비교

0

24

1

실무 조언 관련 질문입니다.

0

48

1

H2데이터베이스 파일 생성

0

59

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

57

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

58

1

JPQL 메소드와 락

0

56

1

Delivery @OneToOne

0

62

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

98

2

UnsupportedOperationException 발생

0

89

3

H2 Database 연결이 안됩니다.

0

98

2

연관관계 매핑 질문드립니다.

0

88

2

h2데이터베이스 실행오류

0

110

2

persistence.xml

0

112

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

83

1

영속성 컨텍스트

0

70

1

JPA 프록시

0

100

1

Native Query와 MyBatis

0

74

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

93

1

임베디드 타입 예시 코드 관련 질문

0

121

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

96

3

인텔리제이 패키지 커서 단축키 질문

0

109

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

149

1