hibernate 中使用session.update(obj) 更新SQL2005 时,老是出现事务回滚。。。

[复制链接]
查看11 | 回复4 | 2010-5-21 11:49:30 | 显示全部楼层 |阅读模式
public boolean update(Webmaster user) {
boolean mark = true ;
Session session = null ;
Transaction tx = null ;

try {
session = HibernateSessionFactory.currentSession() ;
tx = session.beginTransaction() ;
session.update(user);
tx.commit() ;
} catch (HibernateException e) {
mark = false ;
e.printStackTrace();
}finally
{
// if(tx != null)
// {
//
tx.rollback() ;
// }
}

HibernateSessionFactory.closeSession() ;

return mark;
}
事务失败的时候才会回滚啊~~

回复

使用道具 举报

千问 | 2010-5-21 11:49:30 | 显示全部楼层
try,catch,finallytry里放可能出现异常的代码,当有异常时跳转到catch执行,而finally是不管有没有异常它都会被执行,关系搞清楚就应该不会错了,呵。。。
回复

使用道具 举报

千问 | 2010-5-21 11:49:30 | 显示全部楼层
// if(tx != null)// {//
tx.rollback() ;// }这部分应该放在catch块,出现异常时回滚。放在finally块的话,不管什么情况都会执行
回复

使用道具 举报

千问 | 2010-5-21 11:49:30 | 显示全部楼层
public boolean update(Webmaster user) {boolean mark = true ;Session session = null ;Transaction tx = null ;
try { session = HibernateSessionFactory.currentSe
回复

使用道具 举报

千问 | 2010-5-21 11:49:30 | 显示全部楼层
finally块是必须被执行的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行