开发者社区> 问答> 正文

spring注解事务传播机制的REQUIRED和REQUIRES_NEW

这是有注解REQUIRED的方法:

@Transactional(propagation=Propagation.REQUIRES_NEW)
 public void  updateUserRequired(int sid) {
        User user = new User();
        User user1 = null;
        user1=getUserInfo("1", null);
        user.setID("1");
        user.setNAME("w`````````````e");
        user.setPASSWORD("32141221");
        user1=getUserInfo("1", null);
        System.out.println(user1.getID()+" "+user1.getNAME()+" "+user1.getPASSWORD());
        updateUser(user);    
        user1=getUserInfo("1", null);
        System.out.println(user1.getID()+" "+user1.getNAME()+" "+user1.getPASSWORD());
            requiredService.updateTeaRequired_new();
       // throw new RuntimeException();
    }

这是有注解REQUIRES_NEW的方法:

  @Transactional(propagation=Propagation.REQUIRES_NEW)
    public void updateTeaRequired_new(){
        // TODO Auto-generated method stub
        userDao.updateTea(setTeacher());
        throw new RuntimeException();   
    }

如果REQUIRED的方法抛出runtime异常,REQUIRES_NEW不抛出异常,则REQUIRES_NEW提交,REQUIRED回滚。
但是反过来的话却是整体都回滚,这是为什么

展开
收起
小旋风柴进 2016-03-03 13:49:35 5848 0
1 条回答
写回答
取消 提交回答
  • REQUIRED 和REQUIREDNEW是事物的隔离级别,简单看就是REQUIRED级别如果内存事务和外层事务嵌套时候会是一个事务,如果外层回滚内层事务也回滚,REQUIREDNEW当外层回滚时候一般而言内存不会回滚
    2019-07-17 18:51:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多