日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Spring事務(wù)失效的幾種原因

瀏覽:113日期:2023-08-14 10:20:58

數(shù)據(jù)庫引擎不支持事務(wù)

在MySQL數(shù)據(jù)庫中有幾種引擎(InnoDB,MyISAM,Memory等等),僅僅InnoDB支持事務(wù),如果數(shù)據(jù)庫底層都不支持事務(wù)的話,那么再怎么折騰都是白搭.

@transactional加在private方法上

@Transactional只能加在public方法上,如果需要在private方法中加入事務(wù),可以使用Aspect配transactionManager使用.

本類方法調(diào)本類另一個方法

例如:

@Servicepublic class UserServiceImpl implements UserService { @Transactional public void update(User user) { //check updateUserInfo(user); } @Transactional(propagation = Propagation.REQUIRES_NEW) public void updateUser(User user) { // update user }}

@Transactional(propagation = Propagation.REQUIRES_NEW)是無效的,在Spring中是使用代理的方式實現(xiàn)事務(wù),發(fā)生自身調(diào)用的時候,沒有經(jīng)過Spring的代理,自然事務(wù)失效.

不支持事務(wù)

@Servicepublic class UserServiceImpl implements UserService { @Transactional(propagation = Propagation.NOT_SUPPORTED) public void update(User user) { //do some action }}

@Transactional(propagation = Propagation.NOT_SUPPORTED)表示如果當前存在事務(wù)就掛起,以沒有事務(wù)的方式運行,主動不支持事務(wù)了,那么再怎么操作也是白搭. 此處貼下Spring的傳播行為:

/** * Support a current transaction, create a new one if none exists. * Analogous to EJB transaction attribute of the same name. * <p>This is the default setting of a transaction annotation. */ REQUIRED(TransactionDefinition.PROPAGATION_REQUIRED), /** * Support a current transaction, execute non-transactionally if none exists. * Analogous to EJB transaction attribute of the same name. * <p>Note: For transaction managers with transaction synchronization, * PROPAGATION_SUPPORTS is slightly different from no transaction at all, * as it defines a transaction scope that synchronization will apply for. * As a consequence, the same resources (JDBC Connection, Hibernate Session, etc) * will be shared for the entire specified scope. Note that this depends on * the actual synchronization configuration of the transaction manager. * @see org.springframework.transaction.support.AbstractPlatformTransactionManager#setTransactionSynchronization */ SUPPORTS(TransactionDefinition.PROPAGATION_SUPPORTS), /** * Support a current transaction, throw an exception if none exists. * Analogous to EJB transaction attribute of the same name. */ MANDATORY(TransactionDefinition.PROPAGATION_MANDATORY), /** * Create a new transaction, and suspend the current transaction if one exists. * Analogous to the EJB transaction attribute of the same name. * <p><b>NOTE:</b> Actual transaction suspension will not work out-of-the-box * on all transaction managers. This in particular applies to * {@link org.springframework.transaction.jta.JtaTransactionManager}, * which requires the {@code javax.transaction.TransactionManager} to be * made available to it (which is server-specific in standard Java EE). * @see org.springframework.transaction.jta.JtaTransactionManager#setTransactionManager */ REQUIRES_NEW(TransactionDefinition.PROPAGATION_REQUIRES_NEW), /** * Execute non-transactionally, suspend the current transaction if one exists. * Analogous to EJB transaction attribute of the same name. * <p><b>NOTE:</b> Actual transaction suspension will not work out-of-the-box * on all transaction managers. This in particular applies to * {@link org.springframework.transaction.jta.JtaTransactionManager}, * which requires the {@code javax.transaction.TransactionManager} to be * made available to it (which is server-specific in standard Java EE). * @see org.springframework.transaction.jta.JtaTransactionManager#setTransactionManager */ NOT_SUPPORTED(TransactionDefinition.PROPAGATION_NOT_SUPPORTED), /** * Execute non-transactionally, throw an exception if a transaction exists. * Analogous to EJB transaction attribute of the same name. */ NEVER(TransactionDefinition.PROPAGATION_NEVER), /** * Execute within a nested transaction if a current transaction exists, * behave like PROPAGATION_REQUIRED else. There is no analogous feature in EJB. * <p>Note: Actual creation of a nested transaction will only work on specific * transaction managers. Out of the box, this only applies to the JDBC * DataSourceTransactionManager when working on a JDBC 3.0 driver. * Some JTA providers might support nested transactions as well. * @see org.springframework.jdbc.datasource.DataSourceTransactionManager */ NESTED(TransactionDefinition.PROPAGATION_NESTED);

異常被catch

@Servicepublic class UserServiceImpl implements UserService { @Transactional public void update(User user) { try{ }catch(Exception e){ log.error(e.getMessage(),e); } }}

觸發(fā)回滾的操作是被接收到異常,一般我們會在@Transactional后面加上rollbackFor或者noRollbackForClassName來指明觸發(fā)回滾的異常,但是如果在代碼中給catch了異常,那么對于Spring代理來說就這個方法從頭到尾都沒有問題,自然不會觸發(fā)回滾.

異常類型錯誤

@Servicepublic class UserServiceImpl implements UserService { @Transactional public void update(User user) { try{ }catch(Exception e){ log.error(e.getMessage(),e); throw new Exception(e.getMessage()); } }}

以上方式throw new Exception(e.getMessage());事務(wù)也是無效的,主要原因是事務(wù)回滾的條件是throw 運行時異常(RunTimeException).如果需要其他異常也回滾,需要在@Transactional后面加上rollbackFor或者noRollbackForClassName來指明觸發(fā)回滾的異常.

沒有被Spring管理

不在Spring環(huán)境下,自然不受Spring的管理,事務(wù)管理器也當然失去了作用.

沒有配置TransactionManager

需要對當前數(shù)據(jù)源配置事務(wù)管理器,尤其是在多數(shù)據(jù)源的情況下.

以上就是Spring事務(wù)失效的幾種原因的詳細內(nèi)容,更多關(guān)于Spring事務(wù)失效的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
好看不卡的中文字幕| 精品精品国产三级a∨在线| 成人国产精品一区二区免费麻豆| 久久99久久人婷婷精品综合| 国产精品激情电影| 国产精品4hu.www| 国产精品极品国产中出| 久久不见久久见中文字幕免费| 国产精品一区二区中文字幕| 欧美精品成人| 伊人久久视频| 91精品国产福利在线观看麻豆| 日韩精品免费一区二区三区| 激情综合自拍| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲成人国产| 中文字幕系列一区| 狠狠久久婷婷| 亚洲69av| 麻豆精品久久| 国产精品扒开腿做爽爽爽软件| 精品中文在线| 日韩高清不卡一区| 在线精品观看| 九九久久国产| 高清日韩欧美| 久久国产主播| 久久亚洲精品伦理| 国产精品网在线观看| 国产三级精品三级在线观看国产| 精品视频在线你懂得| 99久久亚洲精品| 蜜臀va亚洲va欧美va天堂| 国产调教一区二区三区| 欧美成人精品三级网站| 老鸭窝亚洲一区二区三区| 91大神在线观看线路一区| 欧美丰满日韩| 在线国产精品一区| 水蜜桃精品av一区二区| 亚洲免费婷婷| 精品一区二区三区免费看 | 久久久精品久久久久久96| 在线一区视频| 国产欧美日韩综合一区在线播放| 国产精品毛片久久| 香蕉久久久久久久av网站| 欧美成人精品一级| 9色国产精品| 国产精品一在线观看| 香蕉久久99| 欧美天堂在线| 亚洲a一区二区三区| 欧美日韩国产一区二区在线观看| www成人在线视频| 日韩国产精品久久久久久亚洲| 精品国产精品国产偷麻豆| 国产99精品| 国产乱码精品一区二区三区四区| 日韩综合精品| 国产精品一区免费在线| 欧美日韩免费观看视频| 日韩精品亚洲专区| 色婷婷久久久| 99久久夜色精品国产亚洲狼 | 91高清一区| 91久久国产| 日韩伦理福利| 久久精品国产99国产| 宅男噜噜噜66国产日韩在线观看| 久久久免费人体| 亚洲一区二区三区中文字幕在线观看| 91一区二区三区四区| 日韩美女国产精品| 日韩视频精品在线观看| 久久97视频| 婷婷综合电影| 日韩午夜一区| а√在线中文在线新版| 91亚洲无吗| 久久夜色精品| 久久在线电影| 麻豆精品国产91久久久久久| 久久性天堂网| 久久影院一区| bbw在线视频| 国产精品久久久久久久久久齐齐| 首页亚洲欧美制服丝腿| 日本欧美不卡| 国产中文欧美日韩在线 | 香蕉久久国产| 岛国av在线播放| 国产精品成人国产| 激情综合激情| 成人污污视频| 欧美亚洲国产日韩| 欧美日韩中文字幕一区二区三区 | 亚洲综合欧美| 一区二区三区视频免费观看| 福利视频一区| 老色鬼精品视频在线观看播放| 四虎国产精品免费久久| 黑丝一区二区| 欧美va亚洲va日韩∨a综合色| 波多视频一区| 黄色网一区二区| 国产欧美另类| 亚洲永久字幕| 在线精品视频一区| 六月丁香综合在线视频| 国产精品多人| 久热re这里精品视频在线6| 国产黄大片在线观看| 麻豆国产一区| 国产精品免费99久久久| 国产亚洲一区| 中文亚洲免费| 国产精品magnet| 97se亚洲| 无码日韩精品一区二区免费| 免费在线观看视频一区| 99视频精品| 欧美jjzz| 在线亚洲国产精品网站| 在线亚洲观看| 中文字幕系列一区| 一本大道色婷婷在线| 日韩黄色大片| 亚洲第一精品影视| 亚洲免费播放| 亚洲精品国产精品粉嫩| 97久久超碰| 老司机免费视频一区二区三区| 乱一区二区av| 日韩国产一区二区| 亚洲黑丝一区二区| 欧美精品黄色| 香蕉久久夜色精品国产| 午夜在线视频一区二区区别| 蜜臀av在线播放一区二区三区| 99热免费精品| 亚洲三级网站| 一区二区三区四区日本视频| 久久在线视频免费观看| 亚洲深爱激情| 日韩va亚洲va欧美va久久| 国产欧美日韩在线观看视频| 国产精品久久久免费| 视频在线不卡免费观看| 激情欧美亚洲| 欧美日韩国产高清电影| 亚洲日韩中文字幕一区| 91精品在线观看国产| 欧美日韩国产高清| 在线看片日韩| 久久午夜精品| 亚洲精品一级| 最新国产精品视频| 亚洲女同av| 久久久噜噜噜| 麻豆视频在线观看免费网站黄| 国产一区二区精品久| 麻豆9191精品国产| 亚洲高清成人| 99热国内精品| 亚洲一级高清| 另类中文字幕国产精品| 99在线|亚洲一区二区| 免费在线看一区| 99国产精品久久久久久久成人热| 久久福利一区| 免费亚洲一区| 激情欧美国产欧美| 久久激情综合网| 国产成人77亚洲精品www| 亚洲高清影视| 久久av日韩| 精品欧美激情在线观看| 91成人福利| 久久影视一区| 国产伦理一区| 宅男噜噜噜66国产日韩在线观看| 国产图片一区| 欧美日韩高清| 欧美交a欧美精品喷水| 亚洲va中文在线播放免费| 玖玖玖国产精品| 国产一区二区三区四区二区| 亚洲在线成人| 日韩成人综合| 欧美日韩午夜电影网| 亚洲天堂久久| 国产精品久久久久久久久久齐齐| 欧美精品一区二区久久| 欧美成人一二区| 美女久久网站| 久久婷婷丁香| 欧美激情福利| 日韩高清一级| 香蕉久久精品|