首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

用hibernate治理事务,先更新再查询时,更新不成功,郁闷

2012-08-28 
用hibernate管理事务,先更新再查询时,更新不成功,郁闷。新手求救我用的是过滤器来管理事务,部分代码如下:se

用hibernate管理事务,先更新再查询时,更新不成功,郁闷。
新手求救
我用的是过滤器来管理事务,部分代码如下:
session = HibernateSessionFactory.getSession();
session.beginTransaction(); //开启事务
chain.doFilter(req, resp); //执行相关代码
session.getTransaction().commit(); //提交事务


我在执行action的时候是先更新:
public Boolean modifyTime(Admin admin) {
Boolean b = false;
try {
session=AllSessionFactory.getSession();
int i=session.createSQLQuery("update admin set last_login_time=? where username='admin'")
.setParameter(0, admin.getLast_login_time())
.executeUpdate();
System.out.println("i="+i);
if(i>0){
b=true;
}

} catch (HibernateException e) {
e.printStackTrace();
}
return b;
}
在这里i的值为1,说明执行了的。
但最后数据库里面没有更新,说明事务没有提交,但没有出现任何的错误。

而我就用junit测试的时候,就单独的写事务管理,这样就可以更新,请问我哪弄错了。过滤器不起作用吗,它应该也会提交的啊。

郁闷中。。。。。

[解决办法]
实体类里有构造方法了吧
[解决办法]
我靠楼主你都说了你的事务没有提交,你的事务开启和关闭两个操作都没有,你有什么事务,你以为是查询操作吗?
[解决办法]
请楼主检查两个地方:
1 执行该方法的时候是否先执行了过滤器
2 modifyTime中用AllSessionFactory.getSession()获取到的session是否为过滤器中的session

热点排行