5.3.10 交易

交易永遠是自動或明確的。如果是自動的 (autocommit),則每個操作都會在新交易中執行,並自動提交。

開始、提交和復原交易

begin();

開始交易。不需要任何引數。如果交易已經作用中,則會擲回例外狀況。

commit(Function(Object error) callback);

提交交易。

此方法會將一個回呼函式當作其唯一引數,該函式會傳回錯誤物件。

rollback(Function(Object error) callback);

復原交易。錯誤會在回呼函式中回報。

交易資訊方法

Boolean isActive();

判斷指定的交易目前是否作用中。如果交易作用中,則傳回 true,否則傳回 false。

isActive() 不需要引數。

setRollbackOnly();

將交易標示為僅供復原。完成此動作後,commit() 會復原交易並擲回例外狀況;rollback() 會復原交易,但不會擲回例外狀況。若要將交易標示為僅供復原,請呼叫 setRollbackOnly() 方法,如下所示。

此方法是單向的;標示為僅供復原的交易無法取消標示。在自動提交模式中叫用 setRollbackOnly() 會擲回例外狀況。此方法不需要引數。

boolean getRollbackOnly();

判斷交易是否已標示為僅供復原。如果交易已如此標示,則傳回 true。setRollbackOnly() 不接受引數。