最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

@Transactional注解:多個(gè)事務(wù)嵌套時(shí),獨(dú)立事務(wù)處理方式

 更新時(shí)間:2022年01月25日 14:54:21   作者:iSetYu  
這篇文章主要介紹了@Transactional注解:多個(gè)事務(wù)嵌套時(shí),獨(dú)立事務(wù)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@Transactional注解:多事務(wù)嵌套,獨(dú)立事務(wù)處理

看下需求

在多個(gè)事務(wù)嵌套使用時(shí),排除事務(wù)之間的回滾影響

解決方案

在不同服務(wù)類(lèi)的方法中使用Transactional的propagation屬性來(lái)實(shí)現(xiàn)隔離事務(wù)。(注意兩個(gè)方法不在同一個(gè)服務(wù)類(lèi)中)

Propagation.REQUIRES_NEW即說(shuō)明該事務(wù)開(kāi)啟單獨(dú)事務(wù),不受其他事務(wù)影響

// 服務(wù)類(lèi)A
@Autowired
private ABizService aBizService;
 
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public String insert(FacedbInfoDTO facedbInfoDTO) throws ServiceException {
    ... 
    aBizService.generateId();
} 
 
// 服務(wù)類(lèi)B
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public String generateId() {
    ...    
}

嵌套事務(wù)分析@Transactional

事務(wù)類(lèi)型總共有七種;在這就介紹常用的的兩個(gè)。 

@Transactional(propagation=Propagation.REQUIRED)//如果有事務(wù),那么加入事務(wù),沒(méi)有的話新創(chuàng)建一個(gè);不指定propagation默認(rèn)就是這個(gè)
@Transactional(propagation=Propagation.REQUIREDS_NEW)//不管是否存在事務(wù),都創(chuàng)建一個(gè)新的事務(wù),原來(lái)的掛起,新的執(zhí)行完畢,繼續(xù)執(zhí)行老的事務(wù),

Propagation.REQUIRED類(lèi)型事務(wù)嵌套

A事務(wù)方法調(diào)用B事務(wù)方法時(shí)如果兩個(gè)事務(wù)注解在生效的情況下,在這里A事務(wù)稱為父類(lèi),B事務(wù)稱為子類(lèi);A方法操作數(shù)據(jù)庫(kù)后調(diào)用B方法,下列異常拋出時(shí)保證AB方法里對(duì)數(shù)據(jù)庫(kù)操作都完成了才拋出異常;RuleException繼承的RuntimeException;

列舉一下測(cè)試結(jié)果:

在這里插入圖片描述

總結(jié):

1.如果子類(lèi)方法拋出的異常,不管滿足子類(lèi)還是父類(lèi)的注解的回滾事務(wù)就會(huì)回滾;

2.如果父類(lèi)拋出異常,只看父類(lèi)的事務(wù)注解,如果回滾就父子皆回滾,如果不回滾父子皆不回滾

嵌套事務(wù)類(lèi)型是Propagation.REQUIRES_NEW

這種情況下子事務(wù)開(kāi)啟了新的session,父事務(wù)先鎖定一條記錄(for update)子事務(wù)也鎖這一條記錄時(shí)就會(huì)死鎖;這點(diǎn)要注意;

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

纳雍县| 关岭| 富顺县| 岫岩| 四平市| 郁南县| 赤城县| 长海县| 潮州市| 黄冈市| 远安县| 舟山市| 安吉县| 葫芦岛市| 丹巴县| 瑞昌市| 芦溪县| 景洪市| 临湘市| 定襄县| 福泉市| 民勤县| 桓台县| 兴安盟| 大渡口区| 修武县| 准格尔旗| 吉水县| 临泽县| 无极县| 唐河县| 文山县| 丰台区| 黄石市| 澄城县| 贺州市| 孙吴县| 梅州市| 工布江达县| 长岭县| 新巴尔虎左旗|