2011-06-25 36 views
0

我想知道如何管理業務邏輯層(BLL)中的事務。如何管理業務邏輯層中的事務

我搜查了這個網站找到我的問題的答案,但沒有成功。

我想在我的web應用程序中使用hibernate和struts。

在Struts的Actions中,我稱之爲BLL函數。

在BLL的功能,我想是這樣的:

Begin transaction 
try { 
    Call DAL to do something 
    ... 
    Call DAL to do something 
    Commit Transaction 
catch { 
    Roleback Transaction 
} 

在DAL,我使用休眠功能做一個動作。

但我無法找到如何在BLL管理交易。

請給出任何建議。

謝謝。

回答

0

最常見的做法是添加事務管理以及連接管理作爲一個方面。如果您使用的是Spring,它可能就像@Transactional註釋您的服務的相應方法一樣簡單(您的業務邏輯包含在服務中,對嗎?)。

+0

我的BLL包含許多服務。我發現這篇文章http://www.devarticles.com/c/a/Java/Managing-Transactions-with-Hibernate/3/。但我想知道如果我做這個職位是否有任何風險。我以前從來沒有讀過春天。那麼,我是否會流這篇文章或春季? – hieund

+0

本文已過時,幷包含非常糟糕的代碼。使用Spring,Guice,EJB3或任何其他允許您以聲明方式處理事務的框架(例如使用註釋,例如)。否則,您的代碼將與事務管理混雜在一起,並可能包含更多的錯誤。 –

+0

我的眼睛!我的眼睛!那麼,我想在看完所有的代碼之後,我們可以真正欣賞使用Spring(或者其他任何DI/AOP框架)註釋@Transactional的優雅。 – Olaf