작성
·
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 라고 할 수 있다는 다형성 원리가 적용됩니다 :)
감사합니다.