3
回答
如果在业务逻辑处理开始开启Hibernate事务,这个业务逻辑处理过程中都会占用一个数据库连接,导致数据库的并发性能降低。那我可以不可以利用Hibernate的版本控制,结合下面这样的代码实现业务控制呢?
百度AI开发者大赛带你边学边开发,赢100万奖金,加群:418589053   

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

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

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

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


举报
basicArchit...
发帖于7年前 3回/718阅
顶部