2011-12-04 11 views
1

在我的項目中我正在使用兩個事務類。每個類都包含保存方法。當添加@Transactional(roolbackFor=Exception.class)註釋到這些類,因爲如果沒有異常被執行class1.save方法,使用像@Transactional(rollbackfor = Exception.class)用於兩個daoimpl類

@Component 
public class CallerClass{ 
@Autowired  
private TransactionClass1 class1; 
@Autowired  
private TransactionClass2 class2; 

public void saveOperation(){  
    try{ 
     class1.save(); 
     class2.save(); 
    }catch(Exception ex){ 
    } 
} 
} 

但class2.save方法拋出異常,則class1.save操作回滾?

回答

2

號爲有這樣的行爲,含有這兩種調用方法必須是事務性的爲好。此外,如果您使用new實例化您的類,則不會使用事務攔截器。您必須從應用程序中獲取這些類的實例,或者(最好)通過依賴注入來獲取這些類的實例。

+0

@Autowired其實這兩個對象 – olyanren

+0

謝謝@JB Nizet :) – olyanren

1

如果對於包含save()調用的方法沒有任何@Transactional註釋,那麼比如果不應回退class2.save(),class1.save()時發生異常。

+0

謝謝@dbf :) – olyanren

相關問題