锁定选择更新,但不要锁定常规选择

时间:2012-08-08 19:53:17

标签: java database hibernate locking

我正在实施一个系统,我在其中区分SELECT ...SELECT ... FOR UPDATE

常规SELECT ...用于读取允许处于“不正确”状态的实体(不正确=可能会在之后更新)

SELECT ... FOR UPDATE始终用于读取目标以编辑它的对象,因此它应该返回对象的正确状态。

现在我正在尝试执行以下操作: 每当SELECT ... FOR UPDATE语句读取对象时,锁定同一对象上的其他SELECT ... FOR UPDATE个查询。但是,常规SELECT ...仍应有效。

有没有办法通过使用预定义的锁来做到这一点? 我查看了数据库隔离级别,但我不认为它们是我问题的一部分。

我正在使用java,hibernate和sql数据库。

1 个答案:

答案 0 :(得分:0)

选择更新不会锁定MySQL。它在Oracle,Postgres,MS SQL中有效。