2011-05-07 8 views
3

이것은 내 left join hql 쿼리입니다. 이 코드를 실행하면 목록 크기가 나타납니다. 그러나 객체를 각각의 pojo 클래스에 캐스트 할 수 없습니다.최대 절전 모드 LeftOuter가 HQL에 연결

Query query=session.createQuery("from BwClientdetails client left join client.bwClientAllocations"); 

System.out.println(">>>"+query.list().size()); 
List<BwClientdetails> list=query.list(); 
for(int i=0;i<list.size();i++){ 
    BwClientdetails bc=list.get(i); 
    System.out.println(bc.getClientid()); 
} 

나는 오류가 아래에 무엇입니까 :

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to org.bluewhale.model.BwClientdetails 
     at testapplication.Main.getClients(Main.java:364) 
     at testapplication.Main.main(Main.java:54) 

답변

2

을 셀렉트 경우도 명시하지 않음으로써, 쿼리의 결과는 BwClientdetails, bwClientAllocations의 배열입니다. 쿼리 앞에 Select client 추가 는

Select client from BwClientdetails client left join client.bwClientAllocations 

또는 그것은 어디 절을 지정 항상 곁에 할 수있는 가장 좋은 방법입니다

for(int i=0;i<list.size();i++){ 
    BwClientdetails bc=list.get(i)[0]; 
    System.out.println(bc.getClientid()); 
} 

에 의해 당신의 교체는 JPA 스펙의 경우에도 일부 문제 해결해야