处理hibernate懒加载出现的no session
来源:互联网 发布:在淘宝上买衣服还赚吗 编辑:程序博客网 时间:2024/06/07 09:43
在使用hibernate过程中,我们在service层进行了事务管理,等方法执行完,事务提交了,这个时候session就会关闭。等到了web层,我们组建json数据的时候,因为懒加载的缘故,这个时候他要使用一些数据,这些数据又要去查询数据库,因为session已经关闭了,所以这个时候会抛出异常,no session问题就这样出现了。
遇到这种问题,我的解决方案一般有三个(其实也可以说成两个)
方法一:关闭懒加载(不推荐,但是具体情况根据业务)
方法二:排除不需要加载的属性,因为有些时候他要使用的属性可能我们组装json根本不需要,那么这个时候排除更好(相对于方法三可以减少查询数据库)
JsonConfig jsonConfig = new JsonConfig();jsonConfig.setExcludes(excludes);JSONArray jsonArray = new JSONArray();String json = jsonArray.fromObject(list,jsonConfig).toString();
方法三:配置过滤器
1:当使用hibernate的时候,在spring配置文件中存在sessionFactory的时候
<filter><filter-name>Spring OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class><init-param><!-- 指定org.springframework.orm.hibernate3.LocalSessionFactoryBean在spring配置文件中的名称,默认值为sessionFactory 如果LocalSessionFactoryBean在spring中的名称不是sessionFactory,该参数一定要指定,否则会出现找不到sessionFactory的例外 --><param-name>sessionFactoryBean</param-name><param-value>sessionFactory</param-value></init-param></filter><filter-mapping><filter-name>Spring OpenSessionInViewFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
2:当使用jpa的时候,在Spring配置文件中存在entityManagerFactory
<filter> <filter-name>Spring OpenEntityManagerInViewFilter</filter-name> <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class> <!-- <init-param> 指定org.springframework.orm.jpa.LocalEntityManagerFactoryBean在spring配置文件中的名称,默认值为entityManagerFactory 如果LocalEntityManagerFactoryBean在spring中的名称不是entityManagerFactory,该参数一定要指定,否则会出现找不到entityManagerFactory的例外 <param-name>entityManagerFactoryBeanName</param-name> <param-value>entityManagerFactory</param-value> </init-param> --> </filter> <filter-mapping> <filter-name>Spring OpenEntityManagerInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
阅读全文
0 0
- 处理hibernate懒加载出现的no session
- fastjson序列化hibernate代理和延迟加载对象出现no session异常的解决办法
- fastjson序列化hibernate代理和延迟加载对象出现no session异常的解决办法
- 序列化hibernate代理和延迟加载对象出现no session异常的解决办法
- fastjson序列化hibernate代理和延迟加载对象出现no session异常的解决办法
- hibernate懒加载之No session扩大session作用范围
- hibernate查询时的懒加载异常,……no session or session was closed
- 使用struts2+spring+hibernate测试多对多关系映射的时候出现懒加载问题:could not initialize proxy - no Session
- 使用Hibernate.initialize解决no session的延迟加载问题
- 使用Hibernate.initialize解决no session的延迟加载问题
- spring 任务调度中出现懒加载 no session 问题
- ###hibernate的load()懒加载报错:LazyInitializationException: could not initialize proxy -no Session
- hibernate延迟加载导致no session
- hibernate延迟加载以及no-session
- Hibernate延迟加载 或 no session or session was closed 问题的解决(OpenSessionInViewFilter使用)
- hibernate延迟加载的传说级错误org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- hibernate延迟加载的传说级错误org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- 解决Hibernate延迟加载出现session过期的问题(hibernate操作3次后无反应)
- 函数的配置对象Configuration Objects
- mysql里创建自定义函数---将某字段以逗号分割并取出第一个数据
- SpringBoot8-Spring MVC-Spring MVC基本配置
- sql语句练习题
- 线段树:HDU2795-Billboard(建树方式比较新奇)
- 处理hibernate懒加载出现的no session
- synchronized关键字
- 开门人和关门人 HDU
- 《剑指offer》二叉树的下一个节点
- 木块问题 (using std::vector) UVA
- 时间返回格式
- Servlet--获取Session对象
- Spring Boot 学习
- 链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5。