请问:hibernate里的session如何正确关闭

山城忙碌人 java软件工程师  2010-09-26 09:42:47
rt:
public class Test{
Configuration con = new Configuration().configure("hibernate.cfg.xml");
SessionFactory sf = con.buildSessionFactory();
Transaction tx = null;

public void test(){
String sql = "";
String sql1 = "";
String sql2 = "";
String sql3 = "";

Session session = sf.openSession();
tx = session.beginTransaction();
tx.begin();
try {
session.createQuery(sql).executeUpdate();
session.createQuery(sql1).executeUpdate();
session.createQuery(sql3).executeUpdate();
session.createQuery(sql4).executeUpdate();
tx.commit();
}
catch (Exception e){
tx.rollback();
}
finally {
if (session != null) {
session.close();
}
}
}

}
请问如何正确关闭这里的session.应该关几次。是我执行完第一个修改后就需要关闭一次吗,这样关闭有问题吗?如果有,请问出在哪。正确的应该怎么操作。谢谢。
...全文
40 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
caimi1989 2010-09-26
得到修改后的返回值判断不就可以了吗???
回复
山城忙碌人 2010-09-26
yangfeihu
我有一个问题啊。我是修改三次记录。我想通过修改后的返回值来决定事务提交还是回滚。应该怎么做。我看session.createQuery(sql3).executeUpdate();这样我应该怎么做呢。。
回复
yangfeihu 2010-09-26
没有问题, 这三个操作都在一个事物当中. 要么都成功,要么都失败
如果想每个操作的都开一个事物,那么你这种写法就有问题
回复
yangfeihu 2010-09-26
通过修改后的返回值来决定事务提交还是回滚? 项目中没人会这么做的。 你考虑方向错了。 你到底想要一个什么样的效果啊?
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-09-26 09:42
社区公告
暂无公告