我有一个函数,在每个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对象?或者其他什么应该是正确的方法?
答案 0 :(得分:0)
如果if块中的所有操作都是相关的和原子的,则应考虑在第一个if块之前打开一个会话和事务,并在最后一个if块之后提交/关闭。
如果每个操作都是独立的,那么您可以在第一个操作之前打开一个会话,并将每个操作包含在一个新事务中。