課程
/后端開發
/Java
/Spring事務管理
不知道為什么不能回滾,我使用的時Mybatis+mysql。求大神看看!
(我使用編程式事務可以成功回滾,表引擎修也為InnoDB)
2016-11-07
源自:Spring事務管理 6-3
正在回答
在service類前加上@Transactional,聲明這個service所有方法需要事務管理。每一個業務方法開始時都會打開一個事務。 Spring默認情況下會對運行期例外(RunTimeException)進行事務回滾。這個例外是unchecked 如果遇到checked意外就不回滾。 如何改變默認規則: 1?讓checked例外也回滾:在整個方法前加上?@Transactional(rollbackFor=Exception.class) 2?讓unchecked例外不回滾:?@Transactional(notRollbackFor=RunTimeException.class) 3?不需要事務管理的(只查詢的)方法:@Transactional(propagation=Propagation.NOT_SUPPORTED)
所以,將“rollbackFor=Exception.class”修改為“rollbackFor=RunTimeException.class”
你看一下你的配置文件對比一下
好像沒有開啟事務注解
<tx:annotation-driven tansaction-manager="">
舉報
事務管理是Spring重要的知識,應用事務解決數據不一致問題
1 回答accountMoney6沒事務,transMethod6有事務,會回滾嗎
1 回答accountMoney7、transMethod7都有事務,會回滾嗎
2 回答transactionTemplate編程式事務管理例子在我這里執行怎么不回滾?
2 回答事務里能否查詢到更改?
3 回答為什么事務不起作用?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-07-27
在service類前加上@Transactional,聲明這個service所有方法需要事務管理。每一個業務方法開始時都會打開一個事務。
Spring默認情況下會對運行期例外(RunTimeException)進行事務回滾。這個例外是unchecked
如果遇到checked意外就不回滾。
如何改變默認規則:
1?讓checked例外也回滾:在整個方法前加上?@Transactional(rollbackFor=Exception.class)
2?讓unchecked例外不回滾:?@Transactional(notRollbackFor=RunTimeException.class)
3?不需要事務管理的(只查詢的)方法:@Transactional(propagation=Propagation.NOT_SUPPORTED)
所以,將“rollbackFor=Exception.class”修改為“rollbackFor=RunTimeException.class”
2016-11-09
2016-11-09
好像沒有開啟事務注解
<tx:annotation-driven tansaction-manager="">