2013-03-18 205 views
0

我正在研究涉及mule,spring,hibernate和annotations的應用程序。我正在使用org.springframework.orm.hibernate3.HibernateTransactionManager。現在的問題是:Mule 3.3 spring 3.1 hibernate 3.6事務管理

我有某些組件在mule根據使用休眠條件記錄數據到數據庫。我已經使用@Transactional插入少量數據,然後在方法範圍完成時提交事務。但我想要的行爲是:第一個組件插入基於某些條件的數據,但事務不應該立即提交,我的第二個組件是java類應再次插入一些數據,然後第三個等如果任何組件失敗所有在所有組件中執行的查詢應回滾。所有這些組件是獨立的java類

我該如何實現這樣的行爲。

謝謝,

回答

0

讓你的整個組件執行鏈在一個事務中。那麼它會符合你的期望。如果所有組件都處於同一個彈簧應用環境中,則很容易。在這種情況下,您需要做兩件事:

  1. 在您的組件類或需要處理的特定方法上添加@Transactional註釋。默認情況下,交易方法使用REQUIRED傳播設置,它將使執行鏈中的所有方法合併爲僅一個事務。
  2. 確保Spring能夠掃描您的所有組件。

    @Transactional @Component( 「lbsProviderApiCallJob」) 公共類LbsProviderApiCallJoImpl實現LbsProviderApiCallJob,{了ApplicationContextAware

如果你的所有組件都沒有在Spring context。製作它很複雜。

相關問題