學習一下Spring的事務嵌套:https://blog.csdn.net/zmx729618/article/details/77976793
?
事務可以嵌套嗎??
?
重點句子:
java多線程框架,? ?Juergen Hoeller 的話:
????PROPAGATION_REQUIRES_NEW 啟動一個新的, 不依賴于環境的 "內部" 事務. 這個事務將被完全 commited 或 rolled back 而不依賴于外部事務, 它擁有自己的隔離范圍, 自己的鎖, 等等. 當內部事務開始執行時, 外部事務將被掛起, 內務事務結束時, 外部事務將繼續執行。
????另一方面, PROPAGATION_NESTED 開始一個 "嵌套的" 事務,? 它是已經存在事務的一個真正的子事務. 潛套事務開始執行時,? 它將取得一個 savepoint. 如果這個嵌套事務失敗, 我們將回滾到此 savepoint. 潛套事務是外部事務的一部分, 只有外部事務結束后它才會被提交。
????由此可見, PROPAGATION_REQUIRES_NEW 和 PROPAGATION_NESTED 的最大區別在于, PROPAGATION_REQUIRES_NEW 完全是一個新的事務, 而 PROPAGATION_NESTED 則是外部事務的子事務, 如果外部事務 commit, 潛套事務也會被 commit, 這個規則同樣適用于 roll back。