该行已由另一个事务更新或删除(或未保存的值映射不正确)
我有一个在网络服务器上运行的Java项目。我总是碰到这个例外。 我阅读了一些文档,发现悲观锁定(或乐观,但我阅读悲观更好)是防止此异常的最佳方法。 但是我找不到任何清晰的示例来说明如何使用它。 我的方法是这样的: @Transactional Public void test(Email email, String Subject){ getEmailById(String id); email.setSubject(Subject); updateEmail(email); } 而: Email 是一个休眠类(它将是数据库中的一个表) getEmailById(String id)是一个返回的函数email(此方法未使用注释@Transctional) updateEmail(email):是一种更新电子邮件的方法。 注:我使用Hibernate进行保存,更新和等(例如:session.getcurrentSession.save(email)) 例外: ERROR 2011-12-21 15:29:24,910 Could not synchronize database state with session [myScheduler-1] org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [email#21] …