我在读这篇文章https://www.baeldung.com/jpa-pessimistic-locking,上面写着
悲观写入–允许我们获得独占锁并防止数据被读取、更新或删除
所以我想确认一下。
在事务(tx1)中,我对实体1使用了悲观的写锁。然后叫了一个线程。睡眠(5)。在tx1运行时,我对同一个entity1执行了get api调用,该调用返回了状态为200的数据。之后tx1完成。也许我在这里的实现是错误的,有人能帮助我理解这一点吗?
使用资源:Java8,mysql版本:5.6.34,引擎:innodb
如果我能够读取一个锁定的实体,那么这可能会导致脏更新。所以在tx2中,我做了一个普通的findbyid,然后更新了entity1。这里tx2由于锁定而等待tx1完成,但是tx2将执行脏更新,因为它不知道tx1所做的更改。
暂无答案!
目前还没有任何答案,快来回答吧!