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

運用@Transactional,自己拋出異常時不會回滾的原因

運維 系統運維
對EJB來說,默認的行為是EJB容器在遇到系統異常 (通常指運行時異常)時自動回滾當前事務。EJB CMT遇到應用異常 (例如,除了java.rmi.RemoteException 外別的checked exception)時并不會自動回滾。默認式Spring處理聲明式事務管理的規則遵守EJB習慣(只在遇到unchecked exceptions時自動回滾),但通常定制這條規則會更有用。

 對EJB來說,默認的行為是EJB容器在遇到系統異常 (通常指運行時異常)時自動回滾當前事務。EJB CMT遇到應用異常 (例如,除了java.rmi.RemoteException 外別的checked exception)時并不會自動回滾。默認式Spring處理聲明式事務管理的規則遵守EJB習慣(只在遇到unchecked exceptions時自動回滾),但通常定制這條規則會更有用。

所以

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();
    }
}

(對該例的目的來說,上例中實現類(DefaultFooService )的每個方法在其方法體中拋出UnsupportedOperationException 的做法是恰當的,我們可以看到,事務被創建出來,響應UnsupportedOperationException 的拋出,然后回滾。)

@Transactional 有關的設置

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

改變事務設置的其他可選屬性

Table 9.1. Transactional 注解的屬性

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

 

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

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

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

【編輯推薦】

  1. 技術解析 容錯服務器技術還是雙機冗余?
  2. Linux下使用mke2fsk格式化分區的方法
  3. Ubuntu 11.10 利用終端環境備份還原
責任編輯:趙寧寧
相關推薦

2020-11-18 10:16:52

數據庫回滾事務

2010-05-05 09:05:07

checked異常

2020-11-18 08:32:07

數據庫

2022-09-14 19:50:22

事務場景流程

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事務Spring

2017-05-18 16:07:23

回滾數據庫代碼

2022-06-17 08:37:14

分布式事務分庫分表

2009-03-18 08:59:28

throw異常Java

2011-07-29 16:21:21

Oracle數據庫回滾段

2021-01-13 11:55:39

Spring代碼Java

2009-07-20 15:51:45

JDBC連接Oracl

2021-06-07 09:37:05

異常Bug排查

2017-06-07 19:18:56

Oracle實例恢復前滾和回滾

2023-09-27 16:22:51

SpringMySQL原子性

2023-04-03 10:24:00

spring事務場景
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产亚洲精品久久久久久豆腐 | 国产一区二区影院 | 成人免费三级电影 | 久久噜噜噜精品国产亚洲综合 | 日韩午夜网站 | 国产精品亚洲精品 | 91麻豆精品一区二区三区 | 日韩综合在线 | 精品无码久久久久久国产 | 日韩欧美电影在线 | 国产一级片免费看 | 日韩在线精品强乱中文字幕 | 亚洲一区二区中文字幕 | 美女一区二区在线观看 | 午夜一区二区三区在线观看 | 天天干天天插 | 亚州一区二区三区 | 亚洲精品久久久久久久久久久久久 | 亚洲男人网 | 欧美视频网| 精品欧美一区二区三区久久久 | 国产1区2区 | 免费观看一级毛片视频 | 欧美一级黄色片 | 国产情侣在线看 | 91xxx在线观看| 日韩电影一区 | 日韩中字幕 | 国产色黄 | 日本二区在线观看 | 男人天堂视频在线观看 | 99视频网站 | 亚洲成人一区二区三区 | 国产精品一区二区久久久久 | 午夜精品久久久 | 久久久久久国产精品mv | 99久久婷婷国产精品综合 | 国产一区二区 | 国产精品特级片 | 四虎影音| 91久久久久久久久久久 |