版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q54244125/article/details/76244943
项目在运行时,save or update 数据库时,由于表中存在乐观锁机制。根据版本号判断是否能更新表中的数据。Hibernate乐观锁。
optimistic locking failed; nested exception is org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)
出现以上异常,由于乐观锁version没有对上,导致操作数据库失败。
解决方法:如果一个请求方法中,包含两次以上操作该对象表,那么在前面每次操作完数据库之后,需要将操作后的对象返回,然后下次操作时,保证该对象的版本号是最新的。