Spring的Transaction屬性之Propagation

一、Propagation常用取值:

REQUIRED(默認值):在有transaction狀態下執行;如當前沒有transaction,則創建新的transaction。

REQUIRES_NEW:創建新的transaction並執行;如果當前已有transaction,則將當前transaction掛起。

MANDATORY:必須在有transaction狀態下執行,如果當前沒有transaction,則拋出異常IllegalTransactionStateException。

REQUIRED和REQUIRES_NEW的理解

主方法和子方法:
1 主:REQUREID  子:REQUREID 
主方法:trycatch中調用子方法,那麼子方法需要rollback時,即使被主方法catch住,這個事務還是會回滾是嗎?

答:1是用的同一個事務,所以會一起回滾。


2 主:REQUREID  子:REQUIRES_NEW
子方法正常執行,回到主方法,主方法接下來的語句造成了rollback,那麼子方法是會提交還是rollback呢?

答:2是用的不同的事務,是獨立的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章