Hibernate 阻止select查询的行,直到更新查询完成其工作

Hibernate 阻止select查询的行,直到更新查询完成其工作,hibernate,oracle11g,Hibernate,Oracle11g,我在甲骨文中遇到了一个奇怪的场景。一个客户端正在尝试使用权限选项“select for update”(行将被锁定,直到事务完成)获取少量记录。在第一个客户端提交事务之前,另一个客户端也可以尝试使用只读权限访问行。在事务提交之前,是否可以阻止第一个客户端阻止的第二个客户端的行。请引导我。 提前谢谢 在Oracle中,读卡器从不阻止编写器,编写器也从不阻止读卡器。因此,无论更新进程在做什么,另一个会话始终能够读取行的当前提交状态 如果要防止读取行,则需要编写一些额外的锁定逻辑。读者也可以做一个选择

我在甲骨文中遇到了一个奇怪的场景。一个客户端正在尝试使用权限选项“select for update”(行将被锁定,直到事务完成)获取少量记录。在第一个客户端提交事务之前,另一个客户端也可以尝试使用只读权限访问行。在事务提交之前,是否可以阻止第一个客户端阻止的第二个客户端的行。请引导我。
提前谢谢

在Oracle中,读卡器从不阻止编写器,编写器也从不阻止读卡器。因此,无论更新进程在做什么,另一个会话始终能够读取行的当前提交状态

如果要防止读取行,则需要编写一些额外的锁定逻辑。读者也可以做一个
选择。。。对于更新
,无论是否有
等待
,以便在写入者提交事务之前阻止更新。您还可以使用不同的表构建锁定逻辑。您可以构建一些逻辑,其中写入程序更新不同表中的一行,指示更新过程正在进行,并且所有读取器进程都可以读取该行