新手求救
我用的是过滤器来管理事务,部分代码如下:
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测试的时候,就单独的写事务管理,这样就可以更新,请问我哪弄错了。过滤器不起作用吗,它应该也会提交的啊。郁闷中。。
我用的是过滤器来管理事务,部分代码如下:
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测试的时候,就单独的写事务管理,这样就可以更新,请问我哪弄错了。过滤器不起作用吗,它应该也会提交的啊。郁闷中。。
解决方案 »
- CXF客户端返回错误编码401
- 线性表取范围算法
- tomcat启动Error filterStart问题
- tomcat改变根目录导致的错误!
- 关于GMAIL邮件的发送
- net/sf/hibernate/HibernateException错误怎么解决啊??!!
- 关于单点登录
- 一个关于CMP插入数据库的速度问题
- javamail群发问题!!在线等待!!解决马上结帖
- petstore1.3里究竟有哪些东西是废弃的?另外,我想问一下web tier和ejb tier传递消息的问题
- 做定时器时的监听器 报错 严重: Error configuring application listener of class test.timer.Time
- hibernate 一个类映射多个类如何 配置
我是想用过滤器来做开启事务与提交事务工作,就像下面的这个代码:
session = HibernateSessionFactory.getSession();
session.beginTransaction(); //开启事务
chain.doFilter(req, resp); //执行相关代码
session.getTransaction().commit(); //提交事务
当然过滤器我在web.xml里面配置好了的,过滤/*
我就想让在操作数据(如dao)前开启事务,操作完成后提交事务的工作,每次执行的时候,sql语句发出来了,但没有真正的提交。不知为何??? 是不是过滤器不能过滤*.action或者方法哦? 就是执行方法的时候不走过滤器。
1 执行该方法的时候是否先执行了过滤器
2 modifyTime中用AllSessionFactory.getSession()获取到的session是否为过滤器中的session