首页 > 编程语言 > 详细

Spring学习——事务管理通过try-catch事务失败返回信息

时间:2021-01-14 20:20:11      阅读:1      评论:0      收藏:0      [点我收藏+]

问题:当事务失败返回一个需要的值进行后续的判断

	@Transactional(propagation=Propagation.REQUIRED,timeout = 30000,isolation = Isolation.SERIALIZABLE)
	@Override
	public Map transfer(String outer, String inner, int money) {
		Map<String,Object> map = new HashMap<String, Object>();
		try {
			accountDao.out(outer, money);
			int i =1/0;
			accountDao.in(inner, money);
			map.put("flag", true);
		} catch (Exception e) {
			//手动回滚
			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
			//返回自己想要的值
			map.put("flag", false);
		}
		return map;
	}

  

详解:

在aop配置事务控制或注解式控制事务中,try...catch...会使事务失效,可在catch中抛出运行时异常throw new RuntimeException(e)或者手动回滚TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();使得事务生效,异常回滚。

转载地址:https://www.cnblogs.com/super-chao/p/9897904.html

Spring学习——事务管理通过try-catch事务失败返回信息

原文:https://www.cnblogs.com/lucky-jun/p/14278588.html

(0)
(0)
   
举报
评论 一句话评论(0
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号