java - Spring +Mybatis 事务 不能回滚
怪我咯
怪我咯 2017-04-18 10:50:34
[Java讨论组]

配置事务的文件 spring-mybatis.xml




    
 
     
        
    

    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
    

    
    
        
        
    

    
    
        
    
    
    
    


在service 中写了一个方法 是使用注解 在 这个service类上加了 @Transactional

@Transactional("transactionManager")
@Service
public class AttendServiceImpl implements AttendService{

@Override
public void traincation() {
    Map map1 = new HashMap();
    map1.put("userid", "1111");
    map1.put("username","肖总");
    map1.put("date", "2017-03-15");
    map1.put("state", "/");
    
    Map map2 = new HashMap();
    map2.put("userid", "1131");
    map2.put("username","小名");
    map2.put("date", "2017-03-15");
    map2.put("state", "/");
    dao.add_attend_api(map1);
    
    try {
        int i = 1/0;//设置了一个异常
    } catch (Exception e) {
        System.out.println(e.getMessage());
        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
    }
    dao.add_attend_api(map2);
    
    }
}

执行该方法 出现异常 没有回滚,第一条数据插入到了数据库中
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.transaction.NoTransactionException: No transaction aspect-managed TransactionStatus in scope

是哪里配置有问题么?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
PHPz
<context:component-scan base-package="com.ys.attendance.mapper"/>

包扫描的范围太小了吧。你的service在那个包下。

PHP中文网

方法申明时候增加 throws Exception试试

public void traincation throws Exception(){

...

}

PHPz

要把异常抛出去Spring才能捕获到给你回滚呀
把代码改成这样:

try {
    int i = 1/0;//设置了一个异常
} catch (Exception e) {
    System.out.println(e.getMessage());
    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
    Throw e;
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号