Async呼叫中的事務處理機制

2021-10-06 17:53:30 字數 420 閱讀 4617

@async標註的方法,同時也使用@transactional進行標註;在其呼叫資料庫操作之時,將無法產生事務管理的控制,原因就在於其是基於非同步處理的操作。

那該如何給這些操作新增事務管理呢?

可以將需要事務管理操作的方法放置到非同步方法內部,在內部被呼叫的方法上新增@transactional

方法a,使用了@async/@transactional來標註,但是無法產生事務控制的目的。

方法b,使用了@async來標註,b中呼叫了c、d,c/d分別使用@transactional做了標註,則可實現事務控制的目的。

資料庫事務處理機制

使用sqlitedatabase的begintransaction 方法可以開啟乙個事務,程式執行到endtransaction 方法時會檢查事務的標誌是否為成功,如果程式執行到endtransaction 之前呼叫了settransactionsuccessful 方法設定事務的標誌為成功則提交事...

資料庫事務處理機制

使用sqlitedatabase的begintransaction 方法可以開啟乙個事務,程式執行到endtransaction 方法時會檢查事務的標誌是否為成功,如果程式執行到endtransaction 之前呼叫了settransactionsuccessful 方法設定事務的標誌為成功則提交事...

資料庫事務處理機制

使用sqlitedatabase的begintransaction 方法可以開啟乙個事務,程式執行到endtransaction 方法時會檢查事務的標誌是否為成功,如果程式執行到endtransaction 之前呼叫了settransactionsuccessful 方法設定事務的標誌為成功則提交事...