2012-05-11 2 views
1

스키마 : 각 직원은 많은 전화 번호를 가질 수 있으며 각 전화 번호는 Employee (일대 다 관계)에 속할 수 있습니다. SELECT e, p FROM Employee e JOIN e.phones p, 응용 프로그램 코드에서이 쿼리JPQL 쿼리의 결과로 객체 배열 목록에 액세스하는 방법

는 어떻게 처리 할 것 결과 List<Object[]> 다음 JPQL 쿼리를 사용

? 앱에서 각 직원 및 전화 번호에 액세스하는 측면에서. 코드 List<Object[]>에서? 사용 :

em.createNamedQuery("..").getResultList().get(1)[] 
// or 
em.createNamedQuery("..").getResultList().get(2)[0] 

결과가 잘못되었습니다.

+0

당신은 위의 코드에서'createNamedQuery'와'getResulList' 철자. 실제 코드가 컴파일됩니까? –

+1

'결과가 오류 '입니다. _exact_ 오류에 대해 자세히 설명하고 싶을 수도 있습니다. – Thomas

+0

안녕 매트, 철자법에 관하여 유감스럽게 여기지 않았다. 그것을 보지 않았다!! – arthur

답변

0

문제는 대부분 getResultList()이 아닌 일반 List을 반환하기 때문에 먼저 List<Object[]>으로 캐스팅해야합니다.

가정하면, 목록은 적어도 하나 개의 항목이 작동해야했습니다

Employee e = (Employee)((List<Object[]>)em.createNamedQuery("..").getResultList()).get(0)[0]; 

업데이트 :

은 그냥 참조

: 당신이 사용하는 JPA 버전에 따라, 당신이 List<Object>를 얻을 수 있습니다를 대신. 이 경우 당신은 Object[]에 값을 캐스팅 수 :

Employee e = (Employee)((Object[])em.createNamedQuery("..").getResultList().get(0))[0]; 
+0

내 애플 리케이션에 문제가 거짓말을 도와 주셔서 감사합니다. 코드와 나는 그것을 발견했다. – arthur

관련 문제