Здравствуйте, AlexisVo, Вы писали:
AV>Object[] objj = list.toArray();
AV>Organization[] orgs = (Organization[])objj; //java.lang.ClassCastException: [Ljava.lang.Object;
AV>Объекты в массиве objj действительно имеют тип Organization, я это проверил в отладке. Если циклом перебрать массив objj, то каждый элемент нормально приводится к типу Organization. А массивом — не хочет. В чем может быть проблема?
hibernate здесь ни при чём, проблема в том, что Object[] не одно и то же, что Organization[]
скорее всего, поможет (синтаксис проверь самостоятельно)
Organization[] objj = (Organization[]) list.toArray(new Organization[list.size()]);
Есть проблема с приведением типов Hibernate-овского списка. Вот фрагмент:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query query = session.createQuery("FROM Organization AS org WHERE org.deleted is null ORDER BY org.name ASC");
List list = query.list();
session.getTransaction().commit();
Object[] objj = list.toArray();
Organization[] orgs = (Organization[])objj; //java.lang.ClassCastException: [Ljava.lang.Object;
Объекты в массиве objj действительно имеют тип Organization, я это проверил в отладке. Если циклом перебрать массив objj, то каждый элемент нормально приводится к типу Organization. А массивом — не хочет. В чем может быть проблема?
Здравствуйте, C0s, Вы писали:
C0s>скорее всего, поможет (синтаксис проверь самостоятельно)
C0s>C0s>Organization[] objj = (Organization[]) list.toArray(new Organization[list.size()]);
C0s>
Да, таки помогло. Нужно было List объявить типизированным (List<Organization>), тогда такой синтаксис toArray возможен.
Спасибо.
Излишнее цитирование удалено. Автору выговор.