舉例:兩個均加了事務註解的方法a和b,在a方法中呼叫b方法,會導致b的事務不起作用,因為加了事務註解的方法,並不是本身在執行,而是 **類在執行,而在a方法中呼叫b方法的時候,預設的是this.b();,代表並沒有使用**類來執行,所以不會享受**的服務。也就是不起作用的原因。
解決方法:
1. 獲取當前service的**類
iaccountadjustmentservice accountadjustmentservice = (iaccountadjustmentservice) aopcontext.currentproxy();
2. 從bean容器中獲取
事務巢狀的問題
使用 transactionscope 的過程中,如果存在巢狀事務,比如,bll 層使用了事務,而所呼叫的 dal 內方法也使用了事務的話。假設我們吃掉了 dal 的異常,那麼,外部事務會不會成功?測試 如下 using var ts new transactionscope catch ts.co...
事務巢狀的問題
使用 transactionscope 的過程中,如果存在巢狀事務,比如,bll 層使用了事務,而所呼叫的 dal 內方法也使用了事務的話。假設我們吃掉了 dal 的異常,那麼,外部事務會不會成功?測試 如下 using var ts new transactionscope catch ts.co...
本地事務失效問題
本地事務失效問題 同乙個物件內事務方法互調預設失效,原因繞過了 物件,事務使用 物件來控制的 解決 使用 物件來呼叫事務方法 1.pom.xml引入aspectj org.springframework.boot spring boot starter aop 2.enableaspectjauto...