2017-08-29 30 views
0

我有一個使用Spring 4.3和Hibernate 5.3的應用程序。如何使用Spring和Hibernate設置Web應用程序和批處理作業的事務

有一個帶有表示層,服務層和DAO層的Web應用程序,以及一些共享相同服務和DAO層的作業。

事務使用@Transactional註釋在不同的層進行初始化。

這導致我在這裏我所描述的問題:控制來自外部事務內部事務設置與Spring 4.3

我讀了一些關於如何建立交易接線Spring和Hibernate一起。看起來推薦的方法是初始化服務層中的事務。

我不喜歡的是大多數事務的存在僅僅是因爲他們需要休眠才能正常工作。

當我真的需要一個調用多個服務方法的工作事務時,似乎我沒有選擇從作業中初始化事務。因此,從DAO移動@Transactional註釋到服務似乎沒有任何區別。

您會如何建議設置此類應用程序的交易?

回答

0

原諒我在回答回答,因爲我無法評論

我不明白,你必須保持從作業初始化交易的意思嗎?

通常對於

  • DAO類,它應該與@Repository註解。
  • 服務類@Service@Transactional
  • web服務,如果u有,與@RestController@RequestMapping@Transactional

通過這樣做,從服務類的任何呼叫將1個交易因此,如果服務類A調用服務B和C,即使服務C類拋出錯誤,整個交易將回滾。

相關問題