關於事務這方面的事務註解 傳播行為 隔離級別等分析

2022-06-23 21:33:20 字數 620 閱讀 8627

然後再來說說為什麼會發生這個錯誤。**中service都是加了事務的,然而並不是所有的service都需要開啟事務,因為有些service根本不支援事務,如果一個service本身不支援事務又加了事務@transactional的話就會拋“jta transaction unexpectedly rolled back (maybe due to a timeout); nested”這個異常。在一般公司開發的時候,會呼叫外部的介面,這個是不需要查詢我們本地的資料庫的,也就是說這裡是不能開事務的。檢查一下你的不支援事務的service,把事務關閉就問題解決了。另外,如果是service調service(巢狀事務),大service開啟了事務,這就是說預設裡面的service也是開啟事務的(可以去看一下事務的傳播行為),這裡可以可以設定propagation,就醬,今天還一堆bug在等著我喃。美好的一天從bug開始。

以上暴露了兩個問題:

1)事務註解是單獨載入某個方法上 還是 載入服務類上 亦或是載入controller上?

2)多個標有事務的service方法 內嵌呼叫 會有什麼問題,事務隔離級別、傳播行為此時該怎麼配置?