2010-04-01 21 views
0

我知道ORM工具,比如Hibernate,有自己的事務管理機制。我們也可以直接使用JDBC來利用事務。 DBMS也有其交易工具。我想知道在J2EE應用程序中實際實現事務的哪個層?我猜Hibernate中的事務是建立在JDBC上的,而JDBC依靠底層的DBMS來實現事務。這是否公平?哪一層實現事務機制

問候!

回答

4

當然在服務層。

在EJB中,它們在會話bean上。

在春天,他們在服務。

服務知道工作單元。這就是他們擁有交易背景的原因。

0

交易服務沒有在任何特定的應用層實現。如果你的意思是你要使用交易服務的地方,這取決於你的要求。有時事務劃分可以在視圖層本身,看OpenSessionInView

+0

這不工作這麼好,如果你更改或添加視圖技術(例如,潤您的網頁與移動用戶界面)。移動用戶界面需要通過HTTP調用服務,所以交易應該保留在服務上。 – duffymo 2010-04-01 10:51:20

+0

閱讀'有時',你看到有多少個Web應用程序有移動界面?即使在這些情況下,我希望你會遇到與我提供的鏈接中描述的hibernate代理類似的問題。 – Adi 2010-04-01 16:37:44

0

在服務層,因爲我們寫的業務邏輯在服務層只有