Hibernate问题 failed to lazily initialize a collection of role
来源:互联网 发布:usb网卡改mac 编辑:程序博客网 时间:2024/05/20 15:59
failed to lazily initialize a collection of role问题
原因:
事务配置在Service上,(一对多,多对一,多对多)映射的类是被代理的默认加载是Lazy = true所以没有加载事务且,当主类执行完事务关闭,就没有了session
解决办法:
方法1. @Lazy(value=false)
缺点:大量数据时,速度慢容易崩溃
@OneToMany(mappedBy="survey")
@Lazy(value=false)
public Set<Page> getPages() {
return pages;
}
方法2. web.xml添加上openSessionInViewFilter过滤器(必须在struts2前)
优点:渲染视图时打开session,一劳永逸解决懒加载问题,
缺点:大数据,高并发容易崩溃,性能下降
<!-- 解决failed to lazily initialize a collection of role问题 -->
<filter>
<filter-name>openSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>openSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
方法3:强行在service层面初始化代理对象,所以不会延迟加载(推荐)
public Survey getSurveyWithChildren(Integer sid){
//Survey s = surveyDao.getEntity(sid);
//降低耦合度
Survey s = this.getSurvey(sid);
//强行初始化pages和questions集合
for(Page p : s.getPages()){
p.getQuestions().size();
}
return s;
}
高内聚,低耦合:同一组件内部,提高复用率,组件之间,降低连接
阅读全文
0 0
- Hibernate问题 failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role问题
- hibernate懒加载的问题,failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role:
- failed to lazily initialize a collection of role:
- failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role:报错
- failed to lazily initialize a collection of role
- maven-plugin集合
- AngularJS四大核心特性
- springmvc视图
- 1000·整数运算
- HIbernate多对多_查询
- Hibernate问题 failed to lazily initialize a collection of role
- 关于Java中的null值探究
- express实现登录注册(mysql+mongodb),简单添加session(两种)
- Git常用指令
- 入口文件
- Hibernate多对多_查询
- redux+react+webpack+热加载+兼容IE8(持续更新)
- angular的父子controller通信
- 【worldwind学习】worldwindjava高程数据客户端和服务器端配置