下面的代码会抛出一个转换错误
Long newID =(Long)session.save(object);
我是hibernate的新手。不知道为什么。
答案 0 :(得分:11)
session.save()
的返回值取决于您的映射。很可能你有一种不长的ID。试着这样做:
System.out.println(session.save(object).getClass().getName());
然后你会看到类型名称。
答案 1 :(得分:2)
有两种方法:
public Serializable save(Object object) throws HibernateException
保留给定的瞬态实例,首先分配生成的标识符。 (或者,如果使用指定的生成器,则使用标识符属性的当前值。)如果关联与cascade="save-update"
映射,则此操作会级联到关联的实例。
参数: object - 持久化类的瞬态实例
返回:生成的标识符
public Serializable save(String entityName, Object object) throws HibernateException
保留给定的瞬态实例,首先分配生成的标识符。 (或者,如果使用指定的生成器,则使用标识符属性的当前值。)如果关联与cascade="save-update"
映射,则此操作会级联到关联的实例。
参数: object - 持久化类的瞬态实例
返回:生成的标识符