답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
질문하신 내용은 JPQL 프로젝션에 대한 이해와, 결과로 반환되는 데이터 형태에 관한 것으로 보입니다. 특히, 다중 선택 프로젝션 결과(Object 배열)을 처리하는 방법에 대한 질문인 것 같습니다.
유사한 질문에 대한 답변으로, “JQPL 반환 값 질문..!”에서 비슷한 상황을 설명하고 있습니다. 이 답변에서는 JPQL을 사용하여 여러 컬럼을 선택했을 때의 반환 값 형식에 대해 설명하고 있습니다.
List 객체에 저장되는 결과는 Object[]
타입이며, 각 배열의 요소는 선택한 컬럼에 해당합니다. 그래서 resultList.get(1)
을 통해 접근하면, 두 번째 조회 결과인 Object[]
타입 오브젝트에 접근할 수 있습니다. 여기서 Object o = resultList.get(1);
로 가져온 후, Object[] result = (Object[]) o;
로 캐스팅하는 것은, 조회된 결과가 실제로 Object[]
이기 때문에 질문자님이 이해하신 것처럼 배열로 다운캐스팅 하는 것이 맞습니다.
이러한 과정은 JPQL로부터 여러 값을 조회할 때 각각의 값들이 배열 형태로 묶여 반환된다는 점을 이용합니다. 따라서, username
과 age
값이 Object[]
배열 안에 저장되어 있으며, 이 배열을 순회하거나 인덱스를 통해 접근할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.