Ниже кода выдает ошибку приведения
Long newID = (Long) session.save (объект);
Я новичок в спящем режиме.Не знаю почему.
Возвращаемое значение session.save() зависит от вашего сопоставления. Скорее всего, у вас есть тип ID, который не является длинным. Попробуйте сделать это:
session.save()
System.out.println(session.save(object).getClass().getName());
Тогда вы увидите имя типа.
Существует два метода:
public Serializable save(Object object) throws HibernateException Сохранение заданного временного экземпляра, сначала назначив сгенерированный идентификатор.(Или используя текущее значение свойства идентификатора, если используется назначенный генератор.) Эта операция распространяется каскадно на связанные экземпляры, если сопоставление сопоставляется с cascade="save-update". Параметры: object - временный экземплярперсистентного класса Возвращает: сгенерированный идентификатор
public Serializable save(Object object) throws HibernateException
cascade="save-update"
public Serializable save(String entityName, Object object) throws HibernateException Сохраняет данный временный экземпляр, сначала назначая сгенерированный идентификатор.(Или используя текущее значение свойства идентификатора, если используется назначенный генератор.) Эта операция распространяется каскадно на связанные экземпляры, если сопоставление сопоставляется с cascade="save-update". Параметры: object - временный экземплярпостоянного класса Возвращает: сгенерированный идентификатор
public Serializable save(String entityName, Object object) throws HibernateException