Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : [com.pix.entity.patient.PatientInfo#583372202087284736]
时间: 2024-02-19 08:00:37 浏览: 156
realtime-resource:使用 Socket.io 和 Mongodb 的 CRUD(创建、读取、更新、删除)
这个异常通常是由于多个事务同时对同一个数据库表进行操作所导致的。为了解决这个问题,可以采取以下措施:
1. 使用乐观锁定机制。乐观锁定是指在更新数据库表记录时,检查该记录的版本号是否与数据库中的版本号一致。如果版本号一致,说明该记录没有被其他事务修改过,可以进行更新操作。如果版本号不一致,则说明该记录已经被其他事务修改过,此时应该抛出异常,提示用户更新失败。
2. 使用悲观锁定机制。悲观锁定是指在查询数据库表记录时,使用锁定机制来防止其他事务修改该记录。一般来说,悲观锁定会对性能产生一定的影响,因此应该根据具体情况来选择是否使用悲观锁定。
3. 在更新数据库表记录时,先查询该记录并将其存储在缓存中,然后在对其进行更新时使用缓存中的记录。这样可以避免多个事务同时修改同一个记录。
需要根据具体的业务场景来选择合适的解决方案。
阅读全文