帮忙看看这段代码。谢谢大家

keerqin 2007-01-07 12:07:15
public class HibernateFilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
private SessionFactory sf;
private Logger logger = LogManager.getLogger(HibernateFilter.class);

public void init(FilterConfig filterConfig) throws ServletException {
logger.debug("初始化session factory");
sf = HibernateUtil.getSessionFactory();
}

//Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws ServletException,
IOException {
logger.debug("进入hibernate filter");
try {
logger.debug("开启事务");
sf.getCurrentSession().beginTransaction();

chain.doFilter(request, response);

logger.debug("关闭事务");
sf.getCurrentSession().getTransaction().commit();

} catch (Throwable ex) {
ex.printStackTrace();
try {
if (sf.getCurrentSession().getTransaction().isActive()) {
logger.debug("发生异常,回滚事务");
sf.getCurrentSession().getTransaction().rollback();
}
} catch (Throwable rbEx) {
logger.debug("发生异常,回滚事务失败");
rbEx.printStackTrace();
}

// Let others handle it... maybe another interceptor for exceptions?
throw new ServletException(ex);
} finally {
logger.debug("结束hibernate filter");
}

}

//Clean up resources
public void destroy() {
}
}



这段代码中在过滤器中获取session1打开关闭事务,那么在过滤后提交到目标资源中后,在打开session2做一些数据库操作,返回过滤器用session1提交事务,那么session2所做的数据库操作能提交吗?
我觉得好像不能。请大家指教
...全文
106 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧