在我的项目中我使用两个事务类。每个类都包含save方法。当我将@Transactional(roolbackFor=Exception.class)
注释添加到这些类中时,使用类似
@Component
public class CallerClass{
@Autowired
private TransactionClass1 class1;
@Autowired
private TransactionClass2 class2;
public void saveOperation(){
try{
class1.save();
class2.save();
}catch(Exception ex){
}
}
}
如果在没有Exception的情况下执行class1.save方法但是class2.save方法抛出异常,则回滚class1.save操作?
答案 0 :(得分:2)
没有
要发生此行为,包含这两个调用的方法也必须是事务性的。此外,如果使用new
实例化类,则不会使用事务拦截器。您必须通过依赖注入从应用程序上获取这些类的实例,或者(最好)。
答案 1 :(得分:1)
如果没有方法的@Transactional注释,那么包含save()的调用,如果不存在异常,如果不应该回滚class2.save(),class1.save()。