这是我的left join
hql查询。执行此代码后,我得到列表大小。但无法将对象投射到相应的pojo类。
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)
答案 0 :(得分:2)
通过不指定Select案例,查询结果是BwClientdetails数组,bwClientAllocations。
在查询前添加Select client
可以解决您的问题
Select client from BwClientdetails client left join client.bwClientAllocations
或替换你的for
for(int i=0;i<list.size();i++){
BwClientdetails bc=list.get(i)[0];
System.out.println(bc.getClientid());
}
最好总是指定where子句,它甚至是JPA规范的一部分