我正在嘗試在行上進行選擇並更新值。雖然我這樣做,我需要獨佔訪問該行。換句話說,沒有其他進程(VM內部或外部)應該能夠讀取該行,直到我更新該行之後。當前值不應該是「可選擇的」。我已經嘗試了以下事務註釋。使用Spring事務使用休眠的SQL Server獨佔行鎖(XLOCK ROWLOCK)
@Transactional(isolation = Isolation.SERIALIZABLE, readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Exception.class, timeout=960)
在Spring上下文中肯定能行,但同時把睡眠語句在事務的中間,我仍然可以選擇使用數據庫工具的當前行值。
有沒有辦法使用Spring/Hibernate獲取XLOCK/ROWLOCK(以適當的方式)?
版本:
- 春:3.0.5.RELEASE
- 休眠:3.6.3.Final
- JTDS:1.2.4
如果我不能使用Spring/Hibernate,將非常感謝一個JTDS例子的鏈接。
謝謝。
你是否嘗試過在數據庫工具上發佈帶有「for update」後綴的選擇,然後嘗試從應用程序運行程序?在運行上述查詢之前,您可能還必須檢查工具中的隔離級別。 – r0ast3d
我會盡力的。這可能是我已經獲得了我所需要的那種鎖,而無需進行任何更改。 – JustinKSU
我認爲應該明確地告訴你發生了什麼,請更新你是否看到它沒有鎖定。 – r0ast3d