解决session关闭时再调用对象方法时报session已关闭问题
来源:互联网 发布:ubuntu 16.04 lts ati 编辑:程序博客网 时间:2024/06/05 09:02
session关闭以后,如果还想用相关的对象,比如在页面中进行输出,但又不至于出现session已关闭的错误而导致无法获取对象的信息,本文提供三种解决方式:
1:第一次获得该对象的时候用get而不用load,因get不支持懒加载,在get该对象的同时会想数据库发出sql语句,取出该对象的相应信息放入缓存中,下次即使session已经关闭,因缓存中有相应的数据,查找该对象时会首先从缓存中查询,直接拿来用就ok了
2:可以把相应对象的lazy设为false,这样在load该对象的同时就会发sql语句取出该对象放到缓存中,以后再用可以直接从缓存中取,从而也避免了该异常
3:采用openSessionInView 该方式是通过延长session的时间方式来解决的,可以写一个filter或者inteceptor,下面以filter为例
private SessionFactory sf;//filter -- > public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { try { // sf.getCurrentSession();//获得和当前线程绑定的session sf.getCurrentSession().beginTransaction(); chain.doFilter(request, response); sf.getCurrentSession().getTransaction().commit(); } catch (StaleObjectStateException staleEx) { throw staleEx; } catch (Throwable ex) { ex.printStackTrace(); try { if (sf.getCurrentSession().getTransaction().isActive()) { sf.getCurrentSession().getTransaction().rollback(); } } catch (Throwable rbEx) { } throw new ServletException(ex); } } public void init(FilterConfig filterConfig) throws ServletException { sf = HibernateSessionFactory.getSessionFactory(); } public void destroy() { }
- 解决session关闭时再调用对象方法时报session已关闭问题
- 解决session关闭时再调用对象方法时报session已关闭问题
- 解决session关闭时再调用对象方法时报session已关闭问题
- SSH session连接关闭问题的解决
- SSH session连接关闭问题的解决
- 使用OpenSessionInViewFilter解决session关闭问题
- 项目不定时报hibernate的session没有关闭的问题
- dblink关闭session问题
- 关闭浏览器时候Session对象
- 关闭浏览器session对象失效
- spring data jpa session 查询时 session 已经关闭问题
- Spring.....session 什么时候 关闭问题
- 解决Hibernate的Session的关闭与开启问题
- 解决Hibernate的Session的关闭与开启问题
- 页面关闭时结束Session
- 关闭浏览器时,释放session
- 解决session 关闭问题 WARN - unclosed connection, forgot to call close() on your session?
- 终于找到关闭IE时清理Session的方法了
- visuall assist x 破解方法
- 所谓梦想,是永不停息的疯狂!
- js将json串转化为JSON 对象
- hdu_1856_More is better(並查集)
- c++最新资料大全
- 解决session关闭时再调用对象方法时报session已关闭问题
- 用js调用C#后台方法汇总
- 第六周项目2—程序填空a
- 俞敏洪经典语录集锦
- I NEED A OFFER!
- 私有云
- UpdatePanel控件的使用
- delphi 太简单了
- LNK2005 *** 已经在 *** lib中定义