2011-06-25 39 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