#hibernate #hql
#переход в спящий режим #hql
Вопрос:
Это мой 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)
Ответ №1:
Если не указывать регистр выбора, результатом вашего запроса будет массив 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