@Transactional注解无效

本文探讨了在多个服务跨服务操作表时分布式事务的重要性,并详细介绍了如何通过在方法上添加@Transactional注解来实现简单的事务控制。特别注意,当使用try-catch结构而不抛出异常时,需要手动调用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()来确保事务能够回滚。
摘要由CSDN通过智能技术生成

前言:如果是多个服务跨服务操作表,那么就需要分布式事物!!!

具体实现比较简单,如果只是某一个方法,在该方法上加入注解【@Transactional】即可;

@Transactional == @Transactional(rollbackFor = {RunTimeException.class,Exception.class})

注意 : @Transactional的方法体内使用try{}catch(Exception e){}进行捕获异常且不抛出时,要在catch中加上一句话进行手动回滚事务 : TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

代码如下 :

@Transactional
public void insert1(JSONObject paramsJson) {
	try {
		//todo...
	}catch (Exception ex){
		log.error("系统异常::{}",ex);
		TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
	}
}

注意 : 方法一定要使用'public'修饰,否则注解无效!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值