• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

23.05.15 10:03 작성 조회수 389

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님의 프로필

codesweaver

2023.05.15

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

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

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

감사합니다.