转载自 WYhack
//注解方式声明事务,该事务声明的范围是service中的方法,而一般的事务声明时不是声明在//业务逻辑方法上的,而是声明在单一的数据库操作方法上的
@Transactional
public class UserServiceImpl implements UserService{
private JdbcTemplate jdbcTemplate;
@Override
/*
* 事务默认情况下如果方法抛出unchecked异常,则事务回滚,如果抛出的是checked异常,则事务不回滚
* 如果想要让方法抛出checked异常时也回,则可以按照下面的方法
* @Transactional(rollbackFor=Exception.class)
* 也可以指定unchecked异常不进行回滚
* @Transactional(noRollbackFor=RuntimeException.class)
*/
@Transactional(rollbackFor=Exception.class)
public void delete(int userid) throws Exception{
// TODO Auto-generated method stub
jdbcTemplate.update("delete user where id=?",new Object[]{userid},
new int[]{java.sql.Types.INTEGER});
throw new Exception("hello");
}
}
对于在类前用@Transactional声明的事务,则类中所有的方法都被声明了事务,
而@Transactional声明后默认情况下,所有方法如果抛出的是unchecked异常,
也即RuntimeException,则事务回滚,如果抛出的是checked异常,即Exception,则事务不回滚
因此如果想让方法在抛出checked异常时也回滚,
则可以在方法前加上这样的注释
@Transactional(rollbackFor=Exception.class),这样则表示该方法抛出checked异常时也回滚,
当然也可以让方法抛出unchecked异常不进行回滚,
只需要在方法前面加上注释
@Transactional(noRollbackFor=RuntimeException.class)即可
分享到:
相关推荐
RollBack Rx Pro是一款高效且强大的Windows系统多点还原软件,主要功能是为用户提供方便快捷的系统状态恢复解决方案。它能够创建系统快照,以便在系统出现故障或受到病毒攻击时,用户可以迅速将系统恢复到之前的正常...
RollBack Rx v11.1 正式永久使用无限制,内包括正式版本SN(注册码) 非破解版本。
RollBack Rx 10.3 破解版 最好的还原软件,支持Win8.1系统,安装即已注册。
"雨过天晴RollBack 中英文版"是一个专注于数据保护和系统恢复的软件套装,包含了RollBack RX 10.2以及雨过天晴专业版两个主要组件。这两个工具都是为了帮助用户在遇到系统问题或者意外数据损失时,能够快速有效地...
Ansible-rollback.zip,在capistrano styleansistrano中负责回滚脚本应用程序(如php、python、ruby等),ansible是一个简单而强大的自动化引擎。它用于帮助配置管理、应用程序部署和任务自动化。
Win系统多点还原软件(RRx)RollBack Rx Pro V10.7带序列号版,可以对系统进行快照,多点记录,随时还原到记录点,快速还原
RollBack Rx是一款功能强大的优秀系统恢复还原软件,是全面的Windows系统还原解决方案,程序可以帮助用户和IT管理员轻松地在几秒钟内恢复他们的个人电脑到任何以前的状态。 系统出错或遭受病毒攻击之后,即使你清理...
强大电脑系统恢复还原软件(RollBack Rx)是一款功能强大的优秀系统恢复还原软件,是全面的Windows系统还原解决方案,程序可以帮助用户和IT管理员轻松地在几秒钟内恢复他们的个人电脑到任何以前的状态。 系统出错或...
注册机 雨过天晴海外版
RollBack.Rx.Pro.11.1 (crack)RollBack.Rx.Pro.11.1 (crack)RollBack.Rx.Pro.11.1 (crack)
雨过天晴注册机(Rollback Rx 9.0 注册工具) 1.安装雨过天晴电脑保护系统专业版 V1.0.11.2.20100128,重启完成DOS下安装. 2.断开网络,注册机算出注册码. (机器码无法复制见这里X:\Program Files\Yuguo\netmsg.txt...
git-rollback 轻松回滚最后几次提交。安装$ gem install git-rollback用法$ git rollback贡献分叉( ) 创建功能分支( git checkout -b my-new-feature ) 提交更改( git commit -am 'Add some feature' ) 推送到...
Rollback_homeRollback_homeRollback_home
emberjs-rollback-extended EmberJS Rollback Extended mixin最初是由amkirwan在提供的rollback-relationships.js启发的。 原始的rollback-relationship.js缺少一些功能,以及与我的应用程序集成的一些问题。 我决定...
RollBack.Rx.Pro是一款强大的系统还原工具,专为IT专业人士和普通用户设计,提供全面的系统保护和恢复功能。这款软件的核心理念在于“时间旅行”,它允许用户在系统出现故障或者受到恶意软件攻击时,轻松地将计算机...
1394B相机在WINXP SP2 中的ROLLBACK(回滚) 方法,PDF文档.。,供全球各大品牌工业相机,MATROX采集卡,欢迎垂询13823365382
标题 "1394B SP2回滚 RollBack文件" 指的是针对1394B(FireWire 800)接口的驱动程序,尤其是Service Pack 2(SP2)或Service Pack 3(SP3)更新的回滚操作。在Windows操作系统中,Service Pack是一种重要的更新集合...
Oracle数据库中的回滚段(Rollback Segments)是存储事务历史的重要组件,它们记录了数据修改前的状态,以确保数据的完整性和一致性。在深入理解回滚段之前,我们需要先明确其基本概念和作用。 回滚段的主要功能...
`BEGIN TRAN`、`COMMIT TRAN` 和 `ROLLBACK TRAN` 是SQL Server中用于管理事务的主要命令。下面将详细解释这些命令的用法和作用。 1. `BEGIN TRAN`: `BEGIN TRAN` 语句用于启动一个新的事务。当开始一个事务时,...