ssm手动提交事务或回滚事务
2018-01-25 10:26
253 查看
有时需提交当前事务后,后面业务逻辑才能正常使用,则需要先手动提交当前事务,然后在执行后续的
@Autowired
private ApplicationContext ctx;
DataSourceTransactionManager txManager = (DataSourceTransactionManager) ctx.getBean("transactionManager");
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);// 事物隔离级别,开启新事务
TransactionStatus txStatus = txManager.getTransaction(def);// 获得事务状态
ResultInfo resultInfo = ResultInfo.instance();
Map<String,Object> map = null;
try {
map = agreeInStorge(inNo);//业务逻辑处理代码,业务逻辑有问题则抛出自定义异常BusinessException
txManager.commit(txStatus);//事务处理成功,提交当前事务
}
catch (BusinessException e){//直接抛出异常,不要return,return以后会视为方法结束,继而去执行切面发短信的方法
txManager.rollback(txStatus);//事务处理失败,回滚当前事务
throw e;
}
catch (Exception e) {
log.error("入库号:"+inNo+"入库失败");
log.error(e);
txManager.rollback(txStatus);//事务处理失败,回滚当前事务
throw new BusinessException("入库号:"+inNo+"入库失败");
}
@Autowired
private ApplicationContext ctx;
DataSourceTransactionManager txManager = (DataSourceTransactionManager) ctx.getBean("transactionManager");
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);// 事物隔离级别,开启新事务
TransactionStatus txStatus = txManager.getTransaction(def);// 获得事务状态
ResultInfo resultInfo = ResultInfo.instance();
Map<String,Object> map = null;
try {
map = agreeInStorge(inNo);//业务逻辑处理代码,业务逻辑有问题则抛出自定义异常BusinessException
txManager.commit(txStatus);//事务处理成功,提交当前事务
}
catch (BusinessException e){//直接抛出异常,不要return,return以后会视为方法结束,继而去执行切面发短信的方法
txManager.rollback(txStatus);//事务处理失败,回滚当前事务
throw e;
}
catch (Exception e) {
log.error("入库号:"+inNo+"入库失败");
log.error(e);
txManager.rollback(txStatus);//事务处理失败,回滚当前事务
throw new BusinessException("入库号:"+inNo+"入库失败");
}
相关文章推荐
- Instance Nine:使用Transaction(事务) 手动提交,自动回滚
- 手动提交事务和回滚的使用典例
- 【web】Spring中使用DataSourceTransactionManager手动提交或回滚事务
- 使用事务实现--转账问题:从0001账户转1000块到0002账户。打开"隐式事务":设置为开,删除表中数据,回滚!(默认情况为关,如果打开了则不自动提交,学要手动提交)
- 另外一个实现事务提交、回滚的方法
- 【转】批量复制操作(SqlBulkCopy)的出错处理:事务提交、回滚
- Spring手动回滚事务
- 关于SAP的事务提交和回滚(LUW)
- 项目开发-iBatis事务源码之事务提交和回滚
- Mybatis之基于XML的调用存储过程与手动回滚事务
- EJB容器管理事务-提交和回滚
- oracle学习笔记(四)---15.事务回滚提交、索引、prowerdesigner
- 关于SAP的事务提交和回滚(LUW)
- 事务提交及回滚的具体写法
- spring 手动事务回滚
- 事务的回滚和不提交的区别
- c语言mysql数据库事务开始、提交、回滚范例
- springmvc注解式事务手动回滚
- SSM框架事务管理不起作用,不回滚的原因之一