Java @Transactional手动回滚异常

事件原有:

我需要读A库的数据写到B库中 中途需要切换数据源 但是我们又不是分布式的项目如果加上了@Transactional切换数据源就不会生效了 这时候就用到了事务的手动回滚

        try {
                //进行删除操作
                managementReadWriteDao.delUserHeroByUserId(writeIdUserId);
                managementReadWriteDao.delUserSoldierByUserId(writeIdUserId);
                managementReadWriteDao.delUserDataByUserId(writeIdUserId);
                managementReadWriteDao.delUserExtendsByUserId(writeIdUserId);

                //进行数据库写入操作
                managementReadWriteDao.insertUserHero(u_user_hero);
                managementReadWriteDao.insertUserSoldier(u_user_soldier);
                managementReadWriteDao.insertUserData(u_user_data);
                managementReadWriteDao.insertUserExtends(u_user_extends);

            } catch (Exception e) {
                //手动回滚异常
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                e.printStackTrace();
                return commonResultUtil.getCommonResultUtil(StaticData.codeType.other_error);

            }
            return commonResultUtil.getCommonResultUtil(StaticData.codeType.ok);

核心代码:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值