Hibernate Session.save()不返回值?

时间:2010-11-27 05:06:20

标签: java hibernate

下面的代码会抛出一个转换错误

  

Long newID =(Long)session.save(object);

我是hibernate的新手。不知道为什么。

2 个答案:

答案 0 :(得分:11)

session.save()的返回值取决于您的映射。很可能你有一种不长的ID。试着这样做:

System.out.println(session.save(object).getClass().getName());

然后你会看到类型名称。

答案 1 :(得分:2)

有两种方法:

  1. public Serializable save(Object object) throws HibernateException
    保留给定的瞬态实例,首先分配生成的标识符。 (或者,如果使用指定的生成器,则使用标识符属性的当前值。)如果关联与cascade="save-update"映射,则此操作会级联到关联的实例。
    参数: object - 持久化类的瞬态实例
    返回:生成的标识符

  2. public Serializable save(String entityName, Object object) throws HibernateException
    保留给定的瞬态实例,首先分配生成的标识符。 (或者,如果使用指定的生成器,则使用标识符属性的当前值。)如果关联与cascade="save-update"映射,则此操作会级联到关联的实例。
    参数: object - 持久化类的瞬态实例
    返回:生成的标识符