Transactional 失效問題

2021-09-26 21:25:30 字數 559 閱讀 1328

@transactional配置起來是簡單方便,但是坑也相當多,下面就記錄下這些坑。

1、service類標籤新增在了介面上,查閱資料說介面的方法上可以加也不建議這樣用,但實際中這麼出現事務失效。

2、@transactional 註解只能應用到 public 可見度的方法上。

3、預設情況下,spring會對unchecked異常進行事務回滾;如果是checked異常則不回滾。

4、資料庫不支援事務,比如mysql的myisam

5、spring配置檔案在配置掃瞄元件時,掃瞄的包的順序不對。應先掃瞄dao和service,在spring-mvc.xml中掃瞄controller和其他元件

【坑】:base-package="com.nfa.core"時,controller元件竟然沒有被剔除,一起被掃瞄了,後面改為base-package=''com.nfa.core.dao,com.nfa.core.service"就可以了

Transactional事物失效解決

這麼乙個類 public class foopublic void baz 可能會有不少人會跟我一樣,覺得上面這種方式呼叫 baz 方法時,bar 上的 transactional註解還是會起作用的,即bar 在被呼叫時,將會開啟事務。但是,當實際操作之後,你會發現,這樣並不會開啟新的事務?為什麼呢...

Transactional的失效場景

transactional我們在日常開發中經常用到,可能會經常遇到 transactional失效的情況。下面將從what where when三個方面講解 transactional。事務 transaction 是指我們做的一系列完整的事情,在事務中,任何一步出現了問題,這件事情就未算完成。這裡...

Transactional 失效的場景

1.非public方法上使用會失效 2.開發中避免不了會對同乙個類裡面的方法呼叫,比如有乙個類test,它的乙個方法a,a再呼叫本類的方法b 不論方法b是用public還是private修飾 但方法a沒有宣告註解事務,而b方法有。則外部呼叫方法a之後,方法b的事務是不會起作用的。這也是經常犯錯誤的乙...