我应该如何管理休眠中的会话和事务?

时间:2015-12-10 05:39:32

标签: java hibernate

我有一个函数,在每个if语句中都有一些嵌套的if语句和一个查询,我应该如何管理事务和会话调用。我知道我应该用单独的事务绑定每个调用。

Session session=null;
Transaction tx=null;
if(!list.isEmpty()){
    session=factory.openSession();
    tx=session.beginTransaction();
    session.createQuery(" update Tbluser set loggedStatus='9'").executeUpdate();
    tx.commit();
    session.close();
    if(list.get(1)=="N")
    {
        ///some query
    }
}

我应该还没有关闭会话,还是应该为我的新查询创建一个新的Session对象?或者其他什么应该是正确的方法?

1 个答案:

答案 0 :(得分:0)

如果if块中的所有操作都是相关的和原子的,则应考虑在第一个if块之前打开一个会话和事务,并在最后一个if块之后提交/关闭。

如果每个操作都是独立的,那么您可以在第一个操作之前打开一个会话,并将每个操作包含在一个新事务中。