0
我在執行中,我SELECT ...
和SELECT ... FOR UPDATE
區分的系統。鎖定爲選擇更新,但不鎖定常規選擇
常規SELECT ...
用來讀取實體,被允許在一個「不正確」的狀態(不正確=可能會被更新後的時刻)
的SELECT ... FOR UPDATE
總是用於讀取與目標對象進行編輯它,所以它應該返回對象的正確狀態。
現在我試圖執行以下操作: 只要SELECT ... FOR UPDATE
語句讀取對象,就會鎖定對同一對象的其他SELECT ... FOR UPDATE
查詢。但是,常規的SELECT ...
仍然可以工作。
有沒有通過使用預定義的鎖來做到這一點的方法? 我查看了數據庫隔離級別,但我不認爲它們是我的問題的一部分。
我使用Java,休眠和SQL數據庫。
哪個數據庫產品? – kgrittn 2012-08-08 20:08:33
你不需要做任何事情? 'FOR UPDATE'會鎖定必要的行,直到你提交或回滾。無需在Java中進行顯式鎖定。另外,當你說一個SQL數據庫時,你的意思是SQL Server嗎? – 2012-08-08 20:10:13
數據庫產品:mysql for update會鎖定行,但它也會鎖定它們以進行常規選擇,這不是我的目的。正確? – joost 2012-08-08 20:17:25