spring的事务嵌套

今天在处理一个事务嵌套,出现了的问题:
public class test {
 
  @AutoWired
  private UserService userService
    
    @Transactional​
    public void insertDB(){
        userService.update(User);
   //还有其它的数据库处理
    }
}
 
public class UserService{
    
    @Transactional​
    public update(User user){
        hibernateDao.update(user)
    }
}
问题所在:hibernateDao.update(user)并没有使用insertDB里的事务,而是新建了一个自己的事务,这样就有违背本意:应该是insertDB整个方法执行完才提交事务的
 
解决方案:把insertDB的事务放到test 类上
    
@Transactional
public class test {
 
    public void insertDB(){
        userService.update(User);
    }
}
 
原因:具体的原因我不太清楚,如果有清楚的欢迎留言指导一下~
原文地址:https://www.cnblogs.com/tiramisuyj/p/5051402.html