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

깨위님의 프로필 이미지
깨위

작성한 질문수

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

페치 조인 1 - 기본

JPQL 두개의 엔티티 조회 반환 값 질문

작성

·

505

0

안녕하세요.!

 

아래의 JPQL 반환값 질문 드립니다..!

String query = "SELECT m, t FROM MEMBER m JOIN m.team t"
List<Object[]> result = em.createQuery(query).getResultList();

for(Object [] row: result){
		Member member = (Member)row[0];
		Team team = (Team)row[1];
}

 

Object row에는 어떤 값들이 들어가고..

row[0],row[1]에는 어떤 값들이 들어있는지 궁굼합니다.!

답변 1

0

안녕하세요, 깨위 님! 공식 서포터즈 codesweaver 입니다.

Member와 Team을 테이블을 조회한 뒤 이 1개의 인스턴스를 각각 Member, Team 엔터티에 매핑하여 반환하는데요, 이 떄 Object 형태로 추상화하여 반환합니다. 그래서 이를 다시 사용하려면 다운캐스팅 하여 사용해야 하는데, (Member) row[0]; 코드가 다운 캐스팅을 한 코드 입니다.

Member와 Entity를 어떻게 Object 객체 하나로 다 받을 수 있는가 하는 질문이라면, 자바에서 모든 객체는 최상위 부모 Object를 상속합니다. 그래서 모든 객체는 Object 라고 할 수 있다는 다형성 원리가 적용됩니다 :)

감사합니다.

깨위님의 프로필 이미지
깨위

작성한 질문수

질문하기