2011-11-16 83 views
4

我使用jdbi inTransaction()函數將sql查詢作爲交易執行。我想知道內部使用什麼類型的鎖定機制。另外,整個表是在交易過程中鎖定的,還是隻是需要更新的記錄?jdbi中的交易

回答

8

該事務純粹是在數據庫級別。它將使用數據庫/連接的默認隔離級別,除非被覆蓋。

如果你使用它接受一個回調在inTransaction(...)方法,還有就是功能的一種形式,它允許你設置隔離級別:

<ReturnType> ReturnType inTransaction(TransactionIsolationLevel level, 
             TransactionCallback<ReturnType> callback) 

-Brian

+2

我是正確的說,[官方文檔(http://jdbi.org/archive.html)沒有按」沒有關於交易的部分(甚至沒有例子,甚至沒有字!)? – leonbloy

+0

@lelebly你是正確的! [transaction javadocs]中也沒有任何代碼示例(http://jdbi.org/apidocs/org/skife/jdbi/v2/tweak/transactions/LocalTransactionHandler.html)。 [交易註釋文檔](http://jdbi.org/apidocs/org/skife/jdbi/v2/sqlobject/Transaction.html)更加簡潔,但註釋非常易於使用。 –