Hibernate懒加载

懒加载为hibernate中比较常用的特性之一,下面说一下解决懒加载的几种方式

 

1.显式初始化(在查询方法内部)

要查询某员工属于哪个部门的时候,需要对Department进行预先查询

使用语句

    Hibernate.initialize(Department.class);  

2.修改对象关系文件,将lazy 改写lazy = false,即关闭懒加载


以上两种方法,确实可以解决问题,但是缺点是无论后面是否使用该对象,hibernate都会向数据库发出SQL语句请求数据,造成不必要的性能浪费。


3.使用过滤器(web项目)

①获取session的方式必须使用getCurrentSession

4.在SSH框架中,使用spring提供的openSessionView

其原理和第三种方法中使用Filter类似,只不过这个filter是spring提供的。使用时只需要在web.xml文件配置如下:

②特殊的关闭session方式

 <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>  
对自己狠一点!
原文地址:https://www.cnblogs.com/zzx6/p/7406383.html