2011-05-07 4 views
3

これは私のleft join hqlクエリです。このコードを実行した後、私はリストサイズを取得しています。しかし、それぞれのpojoクラスにオブジェクトをキャストすることはできません。Hibernate 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

を選択する場合をspecifingないことで、クエリの結果はBwClientdetails、bwClientAllocationsの配列です。クエリの前でSelect clientを追加 は

Select client from BwClientdetails client left join client.bwClientAllocations 

またはそれは、where句を指定するなかれすることがベストプラクティスです

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

によってのためにあなたを置き換える、それはJPAの仕様の一部でもあり、あなたの問題は解決しなければなりません

関連する問題