如果在业务逻辑处理开始开启Hibernate事务,这个业务逻辑处理过程中都会占用一个数据库连接,导致数据库的并发性能降低。那我可以不可以利用Hibernate的版本控制,结合下面这样的代码实现业务控制呢?

basicArchitecter 发布于 2011/10/14 14:09
阅读 724
收藏 0

如果在业务逻辑处理开始开启Hibernate事务,这个业务逻辑处理过程中都会占用一个数据库连接,导致数据库的并发性能降低。

那我可以不可以利用Hibernate的版本控制,结合下面这样的代码实现业务控制呢?

如果能的话,数据库连接的占用很短,只是在开始事务和提交事务之间,提高了数据库的并发性。

public void XXService
{
    ITransaction tx;   
    try
    {
        ....//业务逻辑处理, 如果逻辑错误,会抛出异常
         tx =  _session.BeginTransaction();   //开始事务
        tx.Commit(); //提交事务,如果发现版本不对,会抛出异常    
    }
    catch
    {
        tx.Rollback();  //捕获到异常,回滚事务,这个时候,业务逻辑异常,还是版本不匹配,都会回滚,不会有任何数据写入到数据库中
    }
}


加载中
0
宏哥
宏哥
Never use bullshit like hibernate which will drag you into HELL
0
b
basicArchitecter

怎么没人帮我啊!!

0
b
basicArchitecter
真的没人帮我啊!!
返回顶部
顶部