首页 > 其他分享 >@Transactional失效:捕获异常未抛出

@Transactional失效:捕获异常未抛出

时间:2023-03-15 11:45:32浏览次数:32  
标签:Map Exception map 抛出 Transactional saveEngineer catch 失效

失效场景:

    @Transactional(rollbackFor = Exception.class)
    public Map<String, Object> saveEngineer() {
    Map<String,Object> map = Maps.newHashMap();
        try {
                .........
            } catch (Exception e) {
                e.printStackTrace();
            }
        return map;  
    }

解决方法1:事务设置手动回滚

    @Transactional(rollbackFor = Exception.class)
    public Map<String, Object> saveEngineer() {
    Map<String,Object> map = Maps.newHashMap();
        try {
                .........
            } catch (Exception e) {
                e.printStackTrace();
                //事务设置手动回滚
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            }
        return map;  
    }

解决方法2:捕获异常并将异常抛出

    @Transactional(rollbackFor = Exception.class)
    public Map<String, Object> saveEngineer() {
    Map<String,Object> map = Maps.newHashMap();
        try {
                .........
            } catch (Exception e) {
                log.error(e.getMessage(),e);
                //将异常抛出
                throw new ServerException(ExceptionCode.SERVER_INNER_ERROR.getExceptionCode(),e.getMessage());
            }
        return map;  
    }

 

标签:Map,Exception,map,抛出,Transactional,saveEngineer,catch,失效
From: https://www.cnblogs.com/yzhmj/p/17217938.html

相关文章

  • @Transaction注解的失效场景
    作者:京东物流孔祥东背景事情是这样,最近在实现一个需求的时候,有一个定时异步任务会捞取主表的数据并置为处理中(为了防止任务执行时间过长,下次任务执行把本次数据重复捞取),然......
  • C# 关于 SET IDENTITY_INSERT TableN ON 失效
    设置自增标识列的脚本不能单独执行,是没有效果的,需要在同一域执行,才会生效SETIDENTITY_INSERTBiz_Sell_ProduceshippingONINSERTINTOBiz_Sell_ProduceshippingVAL......
  • 安全编码案例(52)go结构体方法未使用指针,结构体实例的锁失效
    摘要:go结构体方法未使用指针,结构体实例的锁失效【问题描述】go结构体方法未使用指针,结构体实例的锁失效【错误代码片段】给结构体定义一把锁在函数中调用锁实测锁......
  • 【教学典型案例】01.redis只管存不管删除让失效时间删除的问题
    目录​​一:背景介绍​​​​二:redis​​​​1)redis数据类型​​​​①String(字符串)​​​​②Hash(哈希)​​​​③List(列表)​​​​④Set(集合)​​​​2)缓存同步​​​​①设......
  • spring事务失效的场景
    spring事务的七种传播机制事务方法发生了相互调用,事务如何传播:a调用bREQUIRED(spring默认的事务传播级别):如果当前(a)没有事务,则(b)新建一个事务,如果当前存在事务,则加入这......
  • 解决vue中v-html元素中标签样式失效问题
    最近在项目中遇到移动端和pc端样式冲突的问题。加上scoped会导致v-html下绑定的标签样式不生效、第三方引用的类库对其修改也不生效,特此总结一下几点,用来解决: Vue为v-......
  • @Transactional事务失效情形
    #private修饰的方式,spring无法生成动态代理#没有被spring管理。类不会被加载bean,自然事务失效。#数据库本身不支持MySQL的Myisam#事务传播行为为非事务方式PROP......
  • Transactional注解
    1:@Transactional声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者......
  • 比应变能密度失效准则
    【文献笔记】来自《复合材料的比应变能密度破坏准则》声明:本文仅介绍他人成果今天找文献的时候看到中国科学院力学研究所在88年发的一文章,文章很短,讲了了一个复材准则......
  • 索引失效的场景
    1.索引字段上有计算或使用了函数2.字符串类型的索引字段,传入了int类型的参数3.索引字段进行了左模糊查询4.两个单独的索引列做了对比5.or的查询条件包含了非索引字段6......