Hibernate无法保存/更新/删除对象

时间:2012-09-19 11:45:44

标签: hibernate hibernate3

我对Hibernate有一个很大的问题。 当我尝试更新或保存表中的元素时,出现此错误:

org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

当我调用我的DAO服务时会产生此错误:

Session session = sessionFactory.getCurrentSession();
session.saveOrUpdate(object);
session.flush();

当我调试时,在flush()之后会产生错误。

这里是表格的关键:

@EmbeddedId
@AttributeOverrides( {
        @AttributeOverride(name = "sysDocId", column = @Column(name = "SYS_DOC_ID", nullable = false)),
        @AttributeOverride(name = "sysDataFile", column = @Column(name = "SYS_DATA_FILE", nullable = false)) })
public RelDocFileId getId() {
    return this.id;
}

全部谢谢

1 个答案:

答案 0 :(得分:0)

这意味着Hibernate无法在数据库中找到此记录,UPDATE语句返回结果:0行受到该更新的影响。

Hibernate发现你将要更新的内容不再存在,这意味着你要保存过时的数据。

您应该不允许这种情况或适当处理此异常,关闭会话并对用户说'嘿,您看到过时的数据,它不再存在'。