springboot 事務不起作用

2021-10-01 12:12:19 字數 580 閱讀 2538

當@transactional不起作用如何排查問題。

可以按照以下幾個步驟逐一確認:

1、首先要看資料庫本身對應的庫、表所設定的引擎是什麼。myisam不支援事務,如果需要,則必須改為innnodb。

2、@transactional所註解的方法是否為public

3、@transactional所註解的方法所在的類,是否已經被註解@service或@component等。

4、需要呼叫該方法,且需要支援事務特性的呼叫方是在在 @transactional所在的類的外面。注意:類內部的其他方法呼叫這個註解了@transactional的方法,事務是不會起作用的。

5、註解為事務範圍的方法中,事務的回滾僅僅對於unchecked的異常有效。對於checked異常無效。也就是說事務回滾僅僅發生在出現runtimeexception或error的時候。

如果希望一般的異常也能觸發事務回滾,需要在註解了@transactional的方法上,將@transactional回滾引數設為:

@transactional(rollbackfor=exception.class)
文章參考:

elementUI rule驗證無效 不起作用

因為專案中遇到複雜的form表單傳輸 具體最終提交格式如下 表單 forminfo 物流資訊 deliveryinfo 開票資訊相關 invoiceflag invoiceinfo 發現所有表單驗證不起作用了 以ordertype為例 頁面 js rules prop和rules裡的校驗名稱是一樣的...

SpringBoot事務不生效

一。1.mysql表必須支援事務 引擎為innodb 2.springboot啟動事務 enabletransactionmanagement 3.方法上加註解 transactional 預設只對runtimeexception起作用,可修改 4.方法必須為public修飾 5.同類中事務的方法不...

spring boot事務失效,不生效

springboot專案中開啟事務 1 啟動類上加開啟事務的註解,2 在需要事務控制的方法上加上事務註解就可以了生效了 本次事務不生效是因為專案中使用了shrio作為安全認證框架,在shiro中使用到的service介面被提前例項化。沒有生成 物件。正常是service介面如果配置了事務註解。是由s...