91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

@Transactional注解怎么用

發布時間:2022-01-26 18:12:04 來源:億速云 閱讀:489 作者:zzz 欄目:開發技術

本篇內容主要講解“@Transactional注解怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“@Transactional注解怎么用”吧!

@Transactional注解:多事務嵌套,獨立事務處理

看下需求

在多個事務嵌套使用時,排除事務之間的回滾影響

解決方案

在不同服務類的方法中使用Transactional的propagation屬性來實現隔離事務。(注意兩個方法不在同一個服務類中)

Propagation.REQUIRES_NEW即說明該事務開啟單獨事務,不受其他事務影響

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

嵌套事務分析@Transactional

事務類型總共有七種;在這就介紹常用的的兩個。 

@Transactional(propagation=Propagation.REQUIRED)//如果有事務,那么加入事務,沒有的話新創建一個;不指定propagation默認就是這個
@Transactional(propagation=Propagation.REQUIREDS_NEW)//不管是否存在事務,都創建一個新的事務,原來的掛起,新的執行完畢,繼續執行老的事務,

Propagation.REQUIRED類型事務嵌套

A事務方法調用B事務方法時如果兩個事務注解在生效的情況下,在這里A事務稱為父類,B事務稱為子類;A方法操作數據庫后調用B方法,下列異常拋出時保證AB方法里對數據庫操作都完成了才拋出異常;RuleException繼承的RuntimeException;

列舉一下測試結果:

@Transactional注解怎么用

總結:

1.如果子類方法拋出的異常,不管滿足子類還是父類的注解的回滾事務就會回滾;

2.如果父類拋出異常,只看父類的事務注解,如果回滾就父子皆回滾,如果不回滾父子皆不回滾

嵌套事務類型是Propagation.REQUIRES_NEW

這種情況下子事務開啟了新的session,父事務先鎖定一條記錄(for update)子事務也鎖這一條記錄時就會死鎖;這點要注意。

到此,相信大家對“@Transactional注解怎么用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乡宁县| 石渠县| 襄樊市| 蓬莱市| 东乡县| 黄浦区| 报价| 通榆县| 南澳县| 寻乌县| 太谷县| 合山市| 桃园市| 寿光市| 虎林市| 锦州市| 宁南县| 芷江| 高碑店市| 四子王旗| 英山县| 汨罗市| 新津县| 元阳县| 伊吾县| 绥德县| 通州区| 资讯| 玛多县| 兰州市| 澄江县| 通城县| 泌阳县| 喀喇| 永城市| 吴忠市| 潜江市| 邢台县| 怀集县| 金平| 锡林郭勒盟|