您的位置:首页 > 其它

解决懒加载的几种方法

2015-10-27 18:08 323 查看
外键连接的对象若没使用,则为代理状态,在页面上显示会出现懒加载异常

那么,如何解决懒加载呢?有以下几种方法

1)查询时将所关联的对象都查出来,利用fetch关键字

例:String hql = "from Employee e left outer join fetch e.department";

2)查询到基对象后将关联的对象均初始化

例:String hql = "from Employee";
List<Employee> list = getSession().createQuery(hql).list();

for(Employee li:list){
li.getDepartment().getDepartmentName();//调用其方法使其初始化
}
return list;

3)在映射文件里外键类上的lazy设为false

<many-to-one name="department" class="Department" column="_departmentId" lazy=false/>//效率低下,不推荐使用

4)使用openSessionInViewFilter:直到页面加载完了再关session
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  懒加载 解决办法