Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate JPA-悲观_写入,读取锁定的记录_Java_Mysql_Jpa_Locking_Pessimistic Locking - Fatal编程技术网

Java Hibernate JPA-悲观_写入,读取锁定的记录

Java Hibernate JPA-悲观_写入,读取锁定的记录,java,mysql,jpa,locking,pessimistic-locking,Java,Mysql,Jpa,Locking,Pessimistic Locking,我在读这篇文章,上面写着 悲观写入–允许我们获得独占锁并防止数据被读取、更新或删除 所以我试图证实这一点 在事务(TX1)中,我对一个实体1进行了悲观写操作。然后调用一个线程。睡眠(5)。 在TX1运行时,我对同一entity1执行了GET API调用,该调用返回了状态为200的数据。之后完成TX1。 也许我的实现是错误的,有人能帮我理解这一点吗 使用的资源:Java8,Mysql版本:5.6.34,引擎:InnoDB 如果我能够读取锁定的实体,那么这可能会导致脏更新。 所以在TX2中,我做了一

我在读这篇文章,上面写着

悲观写入–允许我们获得独占锁并防止数据被读取、更新或删除

所以我试图证实这一点

在事务(TX1)中,我对一个实体1进行了悲观写操作。然后调用一个线程。睡眠(5)。 在TX1运行时,我对同一entity1执行了GET API调用,该调用返回了状态为200的数据。之后完成TX1。 也许我的实现是错误的,有人能帮我理解这一点吗

使用的资源:Java8,Mysql版本:5.6.34,引擎:InnoDB

如果我能够读取锁定的实体,那么这可能会导致脏更新。 所以在TX2中,我做了一个普通的findById,然后对entity1进行了更新。由于锁定,TX2正在等待TX1完成,但TX2将执行脏更新,因为它不知道TX1所做的更改