我对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;
}
全部谢谢
答案 0 :(得分:0)
这意味着Hibernate无法在数据库中找到此记录,UPDATE语句返回结果:0行受到该更新的影响。
Hibernate发现你将要更新的内容不再存在,这意味着你要保存过时的数据。
您应该不允许这种情况或适当处理此异常,关闭会话并对用户说'嘿,您看到过时的数据,它不再存在'。