成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

運(yùn)用@Transactional,自己拋出異常時(shí)不會(huì)回滾的原因

運(yùn)維 系統(tǒng)運(yùn)維
對(duì)EJB來說,默認(rèn)的行為是EJB容器在遇到系統(tǒng)異常 (通常指運(yùn)行時(shí)異常)時(shí)自動(dòng)回滾當(dāng)前事務(wù)。EJB CMT遇到應(yīng)用異常 (例如,除了java.rmi.RemoteException 外別的checked exception)時(shí)并不會(huì)自動(dòng)回滾。默認(rèn)式Spring處理聲明式事務(wù)管理的規(guī)則遵守EJB習(xí)慣(只在遇到unchecked exceptions時(shí)自動(dòng)回滾),但通常定制這條規(guī)則會(huì)更有用。

 對(duì)EJB來說,默認(rèn)的行為是EJB容器在遇到系統(tǒng)異常 (通常指運(yùn)行時(shí)異常)時(shí)自動(dòng)回滾當(dāng)前事務(wù)。EJB CMT遇到應(yīng)用異常 (例如,除了java.rmi.RemoteException 外別的checked exception)時(shí)并不會(huì)自動(dòng)回滾。默認(rèn)式Spring處理聲明式事務(wù)管理的規(guī)則遵守EJB習(xí)慣(只在遇到unchecked exceptions時(shí)自動(dòng)回滾),但通常定制這條規(guī)則會(huì)更有用。

所以

package x.y.service;

public class DefaultFooService implements FooService {

    public Foo getFoo(String fooName) {
        throw new UnsupportedOperationException();
    }

    public Foo getFoo(String fooName, String barName) {
        throw new UnsupportedOperationException();
    }

    public void insertFoo(Foo foo) {
        throw new UnsupportedOperationException();
    }

    public void updateFoo(Foo foo) {
        throw new UnsupportedOperationException();
    }
}

(對(duì)該例的目的來說,上例中實(shí)現(xiàn)類(DefaultFooService )的每個(gè)方法在其方法體中拋出UnsupportedOperationException 的做法是恰當(dāng)?shù)?,我們可以看到,事?wù)被創(chuàng)建出來,響應(yīng)UnsupportedOperationException 的拋出,然后回滾。)

@Transactional 有關(guān)的設(shè)置

在最簡單的形式下,@Transactional 指定一個(gè)接口、類、方法必須是事務(wù)性的,其默認(rèn)事務(wù)語義為:read/write,PROPAGATION_REQUIRED,ISOLATION_DEFAULT ,TIMEOUT_DEFAULT ,而且僅當(dāng)遇到RuntimeException 時(shí)回滾,而不是Exception 。

改變事務(wù)設(shè)置的其他可選屬性

Table 9.1. Transactional 注解的屬性

屬性 類型 描述
傳播性 枚舉型:Propagation 可選的傳播性設(shè)置 (默認(rèn)值:PROPAGATION_REQUIRED )
隔離性 枚舉型:Isolation 可選的隔離性級(jí)別(默認(rèn)值:ISOLATION_DEFAULT )
只讀性 布爾型 讀寫型事務(wù) vs. 只讀型事務(wù)(默認(rèn)值:false ,即只讀型事務(wù))
回滾異常類(rollbackFor) 一組 Class 類的實(shí)例,必須是Throwable 的子類 一組異常類,遇到時(shí) 確保 進(jìn)行回滾。默認(rèn)情況下checked exceptions不進(jìn)行回滾,僅unchecked exceptions(即RuntimeException 的子類)才進(jìn)行事務(wù)回滾。
回滾異常類名(rollbackForClassname) 一組 Class 類的名字,必須是Throwable 的子類 一組異常類名,遇到時(shí) 確保 進(jìn)行回滾
不回滾異常類(noRollbackFor) 一組 Class 類的實(shí)例,必須是Throwable 的子類 一組異常類,遇到時(shí)確保 不 回滾。
不回滾異常類名(noRollbackForClassname) 一組 Class 類的名字,必須是Throwable 的子類 一組異常類,遇到時(shí)確保 不 回滾

 

我們推薦你參考 @Transactional 注解的javadoc,其中詳細(xì)列舉了上述各項(xiàng)屬性及其可選值。

————————————————————————————————————

通過以上可知,在spring 中運(yùn)用@Transactional 注解,自己拋出異常UnsupportedOperationException會(huì) 回滾,拋Exception異常,得作相關(guān)的配置才會(huì)回滾。

【編輯推薦】

  1. 技術(shù)解析 容錯(cuò)服務(wù)器技術(shù)還是雙機(jī)冗余?
  2. Linux下使用mke2fsk格式化分區(qū)的方法
  3. Ubuntu 11.10 利用終端環(huán)境備份還原
責(zé)任編輯:趙寧寧
相關(guān)推薦

2020-11-18 10:16:52

數(shù)據(jù)庫回滾事務(wù)

2010-05-05 09:05:07

checked異常

2020-11-18 08:32:07

數(shù)據(jù)庫

2022-09-14 19:50:22

事務(wù)場(chǎng)景流程

2010-02-01 15:01:34

C++拋出異常

2009-11-16 17:15:12

Oracle減少回滾段

2010-04-16 17:31:22

ORACLE回滾段

2012-12-26 09:36:45

MySQLDelete

2009-11-16 13:41:18

Oracle分離回滾段

2009-07-20 18:11:52

iBATIS事務(wù)Spring

2017-05-18 16:07:23

回滾數(shù)據(jù)庫代碼

2022-06-17 08:37:14

分布式事務(wù)分庫分表

2009-03-18 08:59:28

throw異常Java

2011-07-29 16:21:21

Oracle數(shù)據(jù)庫回滾段

2021-01-13 11:55:39

Spring代碼Java

2021-06-07 09:37:05

異常Bug排查

2009-07-20 15:51:45

JDBC連接Oracl

2017-06-07 19:18:56

Oracle實(shí)例恢復(fù)前滾和回滾

2023-09-27 16:22:51

SpringMySQL原子性

2025-01-09 12:01:53

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品久久久久久久免费观看 | 日韩一级黄色片 | 99免费在线 | 99综合| 久久精品免费观看 | 操操日 | 欧美成年黄网站色视频 | 亚洲精品视频在线看 | 久久综合狠狠综合久久综合88 | 99精品国产一区二区三区 | 亚洲精品乱码久久久久久9色 | 欧美一区二区三区日韩 | 欧美一区二区 | 国产精品成av人在线视午夜片 | 91一区二区三区 | 日本不卡一区二区三区 | 91久久国产综合久久91精品网站 | 91亚洲国产成人久久精品网站 | 中文字幕蜜臀 | 精品av久久久久电影 | 男女羞羞在线观看 | 国产日韩欧美中文字幕 | 九九综合 | 久久久久久免费精品一区二区三区 | 成人欧美一区二区三区在线播放 | 亚洲 欧美 激情 另类 校园 | 中文字幕一区在线观看视频 | 中文字幕一区二区三区乱码在线 | 日本三级在线视频 | www.一区二区三区 | 久草网站| 亚洲图片视频一区 | 国产精品一区二区三区四区 | 成人性生交大片免费看中文带字幕 | 亚洲在线日韩 | 黄色网址在线播放 | 极品销魂美女一区二区 | 男人的天堂久久 | yiren22综合网成人 | 国产精品女人久久久 | 操人视频在线观看 |