springBoot中声明式事务的使用
很多业务会牵连多张表的操作,有的时候一张表操作成功了,但是在中途保不齐出现什么幺蛾子,导致其他关联表操作失败,此时,事务就很重要了,保证了数据的准确性,话不多说,下面是使用方法。
首先,需要在启动类,添加@EnableTransactionManagement注解,由于声明式事务对于try{}cache中的代码默认不会回滚,这里有两个办法,一个是将异常抛出去,然后方法上添加@Transactional(我不经常使用该类方法),另一个就是@Transactional(rollbackFor = Exception.class)下面是我的做法。
@Transactional(rollbackFor = Exception.class) public BaseResponseModel<Boolean> editRankListBasicInfo(BaseRequestModel<RankListBaseInfoReq> requestModel) { try { /** *业务逻辑处理 ... */ return result; } catch (Exception e) { //手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return result; } }