spring事務常見錯誤

叫我林大官人發表於2024-11-19
@Transactional 需要作用在public方法上才能生效

原因

  1. ‌事務代理機制‌:Spring透過代理機制來管理事務。當呼叫一個被@Transactional註解的public方法時,Spring會建立一個代理物件來攔截這個方法的呼叫,並在方法執行前後進行事務的管理。如果方法不是public,Spring無法透過代理機制來管理事務‌
  2. ‌AOP代理‌:Spring使用AOP(面向切面程式設計)來實現事務管理。AOP代理只能攔截public方法,因此private方法上的@Transactional註解不會被觸發‌

注意 後面需要加上 回滾條件,如果不加,預設是RunTimeException才會回滾

相關文章