有個問題,一個spring容器管理項目(service是單例),一個方法會被并發訪問,方法為同步方法且用@Transcation注解,數據庫隔離機制為可重復讀,業務是這樣的,用戶交易后本地會產生一條交易流水記錄,status為0, 然后調用第三方支付,第三方支付會同步異步回調本地這個方法兩次, 這個方法內部先判斷status是不是為0 ,然后賬戶增加10元, 那假如同步異步同時回調,那會不會出現該用戶賬戶增加兩次金額情況@Transcationpublic synchronized void callback() {查詢交易流水記錄 statusif(status == 0) {用戶帳號 增加10元交易流水記錄 status 設為1} else {不作為}}
關于@Transcation sychonized方法的可重復讀機制 ,會不會出現多次修改記錄?
蠱毒傳說
2022-10-03 14:09:57