[Ljava.lang.Object; cannot be cast to
hibernate, hql, java
Solution
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to id.co.bni.switcherservice.model.SwitcherServiceSource
Problem is
(List<SwitcherServiceSource>) LoadSource.list();
This will return a List of Object arrays (Object[]) with scalar values for each column in the `SwitcherServiceSource` table. Hibernate will use ResultSetMetadata to deduce the actual order and types of the returned scalar values.
Solution
List<Object> result = (List<Object>) LoadSource.list();
Iterator itr = result.iterator();
while(itr.hasNext()){
Object[] obj = (Object[]) itr.next();
//now you have one array of Object for each row
String client = String.valueOf(obj[0]); // don't know the type of column CLIENT assuming String
Integer service = Integer.parseInt(String.valueOf(obj[1])); //SERVICE assumed as int
//same way for all obj[2], obj[3], obj[4]
}
Related link
- Using iterator
Problem
I want to get value from the database, in my case I use `List` to get the value from the database but I got this error ``` Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to id.co.bni.switcherservice.model.SwitcherServiceSource at id.co.bni.switcherservice.controller.SwitcherServiceController.LoadData(SwitcherServiceController.java:48) at id.co.bni.switcherservice.controller.SwitcherServiceController.main(SwitcherServiceController.java:62) ``` this is my code ``` Query LoadSource = session_source.createQuery("select CLIENT,SERVICE,SERVICE_TYPE,PROVIDER_CODE,COUNT(*) FROM SwitcherServiceSource" + " where TIMESTAMP between :awal and :akhir" + " and PROVIDER_CODE is not null group by CLIENT,SERVICE,SERVICE_TYPE,PROVIDER_CODE order by CLIENT,SERVICE,SERVICE_TYPE,PROVIDER_CODE"); LoadSource.setParameter("awal", fromDate); LoadSource.setParameter("akhir", toDate); List<SwitcherServiceSource> result_source = (List<SwitcherServiceSource>) LoadSource.list(); for(SwitcherServiceSource tes : result_source){ System.out.println(tes.getSERVICE()); } ``` any help will be pleasure :) @raffian, did you mean like this?? ``` List<Switcher> result = (List<Switcher>) LoadSource.list(); for(Switcher tes : result){ System.out.println(tes.getSERVICE()); } ```