解决hibernate懒加载的问题的几种方式
2015-11-17 15:54
459 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yingziok888/article/details/49888619
当我们使用${loginuser.department.name} 时候,懒加载问题出现:
解决思路:
1. 明确初始化
在session还没有关闭时,访问一次 xxx.getXxx(),强制访问数据库。或者Hibernate.initialize(xxx)
//显示初始化懒加载
Hibernate.initialize(Department.class); //会输出select语句预先查询
2 在对象映射文件中 取消懒加载 <lazy=”false”/>
<class name="Department" table="department" lazy="false">
上面方法问题是: 不管你在jsp中使不使用 部门的名称,它都有向数据库发出select 请求.
3. spring专门提供了opensessioninview的方法来解决懒加载.
需要在web.xml文件中添加如下配置:
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
该方法可以有效的减少对数据库的查询,缺点是和数据保持的session,时间延长了.
相关文章推荐
- Spring中解决Hibernate的lazy加载问题
- 在Eclipse下,出现“找不到或无法加载主类 ”的问题的解决方式
- DWR3.0解决hibernate延迟加载问题
- java中调用本地动态链接库(*.DLL)的两种方式详解和not found library、打包成jar,war包dll无法加载等等问题解决办法
- 解决Hibernate懒加载的4种方式
- Spring使用OpenSessionInViewFilter解决Hibernate的lazy延时加载问题
- 使用Hibernate.initialize解决no session的延迟加载问题
- Spring+Hibernate+Struts之懒加载问题的解决
- 解决Hiberante延迟加载问题——could not initialize proxy - no Session & 简介Hibernate的持久化
- hibernate 延迟加载(Lazy)问题spring下解决方法
- Spring加载Hibernate 映射的几种方式及区别
- VC6.0中不同版本静态方式加载动态库的问题解决过程
- 逆向工程中的有关问题:Hibernate project not selected 解决方式
- hibernate的懒加载的四种解决方式
- spring加载hibernate映射文件的几种方式
- OpenSessionInViewFilter解决Hibernate延时加载问题
- spring加载hibernate映射文件的几种方式
- spring加载hibernate映射文件的几种方式
- json解决hibernate中级联对象延迟加载有关问题
- Hibernate延迟加载 或 no session or session was closed 问题的解决(OpenSessionInViewFilter使用)