REQUIRED:業(yè)務(wù)方法需要在一個(gè)事務(wù)中運(yùn)行。如果方法運(yùn)行時(shí),已經(jīng)處在一個(gè)事務(wù)中,那么加入到該事務(wù),否則為自己創(chuàng)建一個(gè)新的事務(wù)。
NOT_SUPPORTED:聲明方法不需要事務(wù)。如果方法沒(méi)有關(guān)聯(lián)到一個(gè)事務(wù),容器不會(huì)為它開(kāi)啟事務(wù)。如果方法在一個(gè)事務(wù)中被調(diào)用,該事務(wù)會(huì)被掛起,在方法調(diào)用結(jié)束后,原先的事務(wù)便會(huì)恢復(fù)執(zhí)行。
REQUIRESNEW:屬性表明不管是否存在事務(wù),業(yè)務(wù)方法總會(huì)為自己發(fā)起一個(gè)新的事務(wù)。如果方法已經(jīng)運(yùn)行在一個(gè)事務(wù)中,則原有事務(wù)會(huì)被掛起,新的事務(wù)會(huì)被創(chuàng)建,直到方法執(zhí)行結(jié)束,新事務(wù)才算結(jié)束,原先的事務(wù)才會(huì)恢復(fù)執(zhí)行。
MANDATORY:該屬性指定業(yè)務(wù)方法只能在一個(gè)已經(jīng)存在的事務(wù)中執(zhí)行,業(yè)務(wù)方法不能發(fā)起自己的事務(wù)。如果業(yè)務(wù)方法在沒(méi)有事務(wù)的環(huán)境下調(diào)用,容器就會(huì)拋出例外。
SUPPORTS:這一事務(wù)屬性表明,如果業(yè)務(wù)方法在某個(gè)事務(wù)范圍內(nèi)被調(diào)用,則方法成為該事務(wù)的一部分。如果業(yè)務(wù)方法在事務(wù)范圍外被調(diào)用,則方法在沒(méi)有事務(wù)的環(huán)境下執(zhí)行。
Never:指定業(yè)務(wù)方法絕對(duì)不能在事務(wù)范圍內(nèi)執(zhí)行。如果業(yè)務(wù)方法在某個(gè)事務(wù)中執(zhí)行,容器會(huì)拋出例外,只有業(yè)務(wù)方法沒(méi)有關(guān)聯(lián)到任何事務(wù),才能正常執(zhí)行。
NESTED:如果一個(gè)活動(dòng)的事務(wù)存在,則運(yùn)行在一個(gè)嵌套的事務(wù)中. 如果沒(méi)有活動(dòng)事務(wù), 則按REQUIRED屬性執(zhí)行.它使用了一個(gè)單獨(dú)的事務(wù), 這個(gè)事務(wù)擁有多個(gè)可以回滾的保存點(diǎn)。內(nèi)部事務(wù)的回滾不會(huì)對(duì)外部事務(wù)造成影響。它只對(duì)DataSourceTransactionManager事務(wù)管理器起效
?
關(guān)于事務(wù)隔離級(jí)別的問(wèn)題:
數(shù)據(jù)庫(kù)系統(tǒng)提供了四種事務(wù)隔離級(jí)別供用戶(hù)選擇。不同的隔離級(jí)別采用不同的鎖類(lèi)型來(lái)實(shí)現(xiàn),在四種隔離級(jí)別中,Serializable的隔離級(jí)別最高,Read Uncommited的隔離級(jí)別最低。大多數(shù)據(jù)庫(kù)默認(rèn)的隔離級(jí)別為Read Commited,如SqlServer,當(dāng)然也有少部分?jǐn)?shù)據(jù)庫(kù)默認(rèn)的隔離級(jí)別為Repeatable Read ,如Mysql
Read Uncommited:讀未提交數(shù)據(jù)(會(huì)出現(xiàn)臟讀,不可重復(fù)讀和幻讀)。
Read Commited:讀已提交數(shù)據(jù)(會(huì)出現(xiàn)不可重復(fù)讀和幻讀)
Repeatable Read:可重復(fù)讀(會(huì)出現(xiàn)幻讀)
Serializable:串行化
臟讀:一個(gè)事務(wù)讀取到另一事務(wù)未提交的更新新?lián)?
不可重復(fù)讀:在同一事務(wù)中,多次讀取同一數(shù)據(jù)返回的結(jié)果有所不同。換句話說(shuō)就是,后續(xù)讀取可以讀到另一事務(wù)已提交的更新數(shù)據(jù)。相反,“可重復(fù)讀”在同一事務(wù)中多次讀取數(shù)據(jù)時(shí),能夠保證所讀數(shù)據(jù)一樣,也就是,后續(xù)讀取不能讀到另一事務(wù)已提交的更新數(shù)據(jù)。
幻讀:一個(gè)事務(wù)讀取到另一事務(wù)已提交的insert數(shù)據(jù)。
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
