Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @两个daoimpl类的事务性(rollboor=Exception.class)_Java_Hibernate_Spring - Fatal编程技术网

Java @两个daoimpl类的事务性(rollboor=Exception.class)

Java @两个daoimpl类的事务性(rollboor=Exception.class),java,hibernate,spring,Java,Hibernate,Spring,在我的项目中,我使用两个事务类。每个类都包含save方法。当我将@Transactional(roolbackFor=Exception.class)注释添加到这些类中,以便使用 @Component public class CallerClass{ @Autowired private TransactionClass1 class1; @Autowired private TransactionClass2 class2; public void saveOperatio

在我的项目中,我使用两个事务类。每个类都包含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){
    }
}
}

如果class1.save方法在没有异常的情况下执行,但class2.save方法抛出异常,那么是否回滚class1.save操作

如果没有包含save()调用的方法的@Transactional注释,则不应回滚class2.save()、class1.save()时出现异常。


要实现这种行为,包含这两个调用的方法也必须是事务性的。此外,如果使用
new
实例化类,则不会使用事务拦截器。您必须从应用程序上下文中获取这些类的实例,或者(最好)通过依赖项注入获取这些类的实例。

@Autowired实际上是这两个对象