Hibernate LeftOuter соединение HQL - PullRequest
3 голосов
/ 07 мая 2011

Это мой 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 Ответ

2 голосов
/ 07 июня 2011

Если не указать регистр выбора, результатом вашего запроса будет массив 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());
}

Лучше всего всегда указывать условие where, это даже часть спецификации JPA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...