Re: Hibernate. Проблема с приведением типов
От: C0s Россия  
Дата: 08.01.08 12:42
Оценка: 1 (1) +1
Здравствуйте, 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. Проблема с приведением типов
От: AlexisVo  
Дата: 08.01.08 12:37
Оценка:
Есть проблема с приведением типов 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. А массивом — не хочет. В чем может быть проблема?
Re[2]: Hibernate. Проблема с приведением типов
От: AlexisVo  
Дата: 08.01.08 13:18
Оценка:
Здравствуйте, C0s, Вы писали:

C0s>скорее всего, поможет (синтаксис проверь самостоятельно)

C0s>
C0s>Organization[] objj = (Organization[]) list.toArray(new Organization[list.size()]);
C0s>


Да, таки помогло. Нужно было List объявить типизированным (List<Organization>), тогда такой синтаксис toArray возможен.
Спасибо.
Излишнее цитирование удалено. Автору выговор.
Re[3]: Hibernate. Проблема с приведением типов
От: Blazkowicz Россия  
Дата: 08.01.08 13:27
Оценка:
Здравствуйте, AlexisVo, Вы писали:

AV>Да, таки помогло. Нужно было List объявить типизированным (List<Organization>), тогда такой синтаксис toArray возможен.

Generics здесь тоже не при чем. И, пожалуйста, следите за объемами цитирования. Излишнее цитирование запрещено правилами форума.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.