LazyInitializationException no session or session was closed异常的解决思路
2015-01-08 14:57
387 查看
因实体类间相互引用而设置为Lazy懒加载后(比较常见的就是多对多关系),导致session异常,一般原因是session接受spring事物管理,当事务提交或回滚后,会自动
关闭session,而此时如果在一个脱离了事务管理的方法中加载“懒加载”部分数据时,导致session丢失而引发此异常。
解决方法有以下几种:
1、将懒加载代码段的方法纳入事务管理,在方法声明中使用@Transactional,注意Action没有事务接口,不能使用事务,如果懒加载发生在Action中时,应将其移入业务层
2、在该部分停止触发懒加载,可行的方式是,在加载前主动将其赋值null,如:role.setUsers(null);
3、取消懒加载设置,设置为实时加载,即:fetch = FetchType.EAGER,此方法有可能会引起性能瓶颈
关闭session,而此时如果在一个脱离了事务管理的方法中加载“懒加载”部分数据时,导致session丢失而引发此异常。
解决方法有以下几种:
1、将懒加载代码段的方法纳入事务管理,在方法声明中使用@Transactional,注意Action没有事务接口,不能使用事务,如果懒加载发生在Action中时,应将其移入业务层
2、在该部分停止触发懒加载,可行的方式是,在加载前主动将其赋值null,如:role.setUsers(null);
3、取消懒加载设置,设置为实时加载,即:fetch = FetchType.EAGER,此方法有可能会引起性能瓶颈
相关文章推荐
- spring no session or session was closed,org.hibernate.LazyInitializationException: failed to lazily
- 出现org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed问题以及解决办法
- org.hibernate.LazyInitializationException: failed to lazily initialize no session or session was clo
- JPA中的failed to lazily initialize a collection of role:xxxx no session or session was closed异常分析与解决
- LazyInitializationException: could not initialize proxy-the owning Session was closed 异常
- 过滤器解决Hibernate中(no session or session was closed)异常
- dubbo序列化,hibernate.LazyInitializationException could not initialize proxy - no Session懒加载异常的解决 转
- no session or session was closed解决办法
- 解决no session or session was closed的问题
- Hibernate延迟加载 或 no session or session was closed 问题的解决(OpenSessionInViewFilter使用)
- 解决org.hibernate.LazyInitializationException: could not initialize proxy - no Session懒加载问题
- 使用clone解决hibernate+spring集成中的延迟加载问题及分析(no session or session was closed)
- 解决org.hibernate.LazyInitializationException: could not initialize proxy - no Session问题
- LazyInitializationException:could not initialize proxy - the owning Session was closed
- org.hibernate.SessionException: Session was already closed异常解决办法
- 配置Spring的OpenSessionInViewFilter过滤器,以解决Hibernate的懒加载异常(LazyInitializationException)
- spring+hibernate 项目lazy = true 时 no session or session was closed 问题处理
- 解决org.hibernate.LazyInitializationException: could not initialize proxy - no Session at org.hibernat
- ThreadLocal的实现原理,及使用实例,解决spring,hibernate非web项目下的懒加载 no session or session was closed(2)!
- SSH项目常见异常处理之[org.hibernate.LazyInitializationException: could not initialize proxy - no Session]