資源描述:
《spring傳播事務和隔離級別》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、Spring事務的傳播行為和隔離級別7個傳播行為,4個隔離級別,Spring事務的傳播行為和隔離級別[transactionbehaviorandisolatedlevel]2007-08-0116:33事務的傳播行為和隔離級別[transactionbehaviorandisolatedlevel]Spring中事務的定義:一、Propagation: key屬性確定代理應該給哪個方法增加事務行為。這樣的屬性最重要的部份是傳播行為。有以下選項可供使用:PROPAGATION_REQUIRED--支持當前事務,如果
2、當前沒有事務,就新建一個事務。這是最常見的選擇。PROPAGATION_SUPPORTS--支持當前事務,如果當前沒有事務,就以非事務方式執(zhí)行。PROPAGATION_MANDATORY--支持當前事務,如果當前沒有事務,就拋出異常。PROPAGATION_REQUIRES_NEW--新建事務,如果當前存在事務,把當前事務掛起。PROPAGATION_NOT_SUPPORTED--以非事務方式執(zhí)行操作,如果當前存在事務,就把當前事務掛起。PROPAGATION_NEVER--以非事務方式執(zhí)行,如果當前存在事務,則拋出
3、異常。很多人看到事務的傳播行為屬性都不甚了解,我昨晚看了j2eewithoutejb的時候,看到這里也不了解,甚至重新翻起數(shù)據(jù)庫系統(tǒng)的教材書,但是也沒有找到對這個的分析。今天搜索,找到一篇極好的分析文章,雖然這篇文章是重點分析PROPAGATION_REQUIRED和PROPAGATION_REQUIRED_NESTED的解惑spring嵌套事務/***@author王政*@date2006-11-24*@note轉載自http://www.javaeye.com/topic/35907?page=1*/******
4、**TransactionDefinition接口定義*******************/**???????*Supportacurrenttransaction,createanewoneifnoneexists.???????*AnalogoustoEJBtransactionattributeofthesamename.???????*
Thisistypicallythedefaultsettingofatransactiondefinition.???????*/??????intPROPAGATI
5、ON_REQUIRED=0;???????/**???????*Supportacurrenttransaction,executenon-transactionallyifnoneexists.???????*AnalogoustoEJBtransactionattributeofthesamename.???????*
Note:Fortransactionmanagerswithtransactionsynchronization,???????*PROPAGATION_SUPPORTSisslightly
6、differentfromnotransactionatall,???????*asitdefinesatransactionscoppthatsynchronizationwillapplyfor.???????*Asaconsequence,thesameresources(JDBCConnection,HibernateSession,etc)???????*willbesharedfortheentirespecifiedscope.Notethatthisdependson???????*theactual
7、synchronizationconfigurationofthetransactionmanager.???????*@seeorg.springframework.transaction.support.AbstractPlatformTransactionManager#setTransactionSynchronization???????*/??????intPROPAGATION_SUPPORTS=1;???????/**???????*Supportacurrenttransaction,throwan
8、exceptionifnoneexists.???????*AnalogoustoEJBtransactionattributeofthesamename.???????*/??????intPROPAGATION_MANDATORY=2;???????/**???????*Createanewtransaction,suspendthecur