1. 什么是延迟加载问题 ?

业务层查询的数据 关闭session 之后...web层获取延迟加载的数据失败.

例如:查询订单没有查询客户,需要显示客户,session已经关闭,无法查询

2. 如何解决延迟加载问题

方案一: 将订单关联客户,配置成为 立即加载 lazy=false

方案二: 在业务层,session关闭前,通过Hibernate.initialize(object) 手动对延迟对象初始化

      Hibernate.initialize(list.get(0).getStores());//立刻查询数据库,查询stores

方案三: OpenSessionInView 将session开放到表现层

Spring 提供了 OpenSessionInViewFilter ,在执行表现层方法前,开启Session, 在表现层方法执行后,关闭Session ---------------- 服务器三层都可以使用同一个Session

注意: 必须在struts2 Filter之前配置才能有效 !!!

3.如何选用延迟加载的方法?

  如果不需要延迟加载的数据,那么建议使用第一种方法;

  如果需要延迟加载的数据,选择第二、第三种方法。

  第二种方法与第三种方法简要区别:

  第二种方法:当执行Hibernate.initialize(object) 方法时,立即查询数据库,没有改变session的生命周期。

  第三种方法:改变了session的生命周期,将业务层的session生命周期延长到表现层,从而获得延迟加载的数据。

ssh延迟加载问题的解决方案的更多相关文章

  1. SSH 连接慢的解决方案详解

    SSH 连接慢的解决方案详解 http://www.codeceo.com/article/ssh-slow.html

  2. 【转】ssh timed out 超时解决方案

    转自:http://www.cnblogs.com/niutouzdq/p/4091268.html 在使用阿里云ECS服务器的时候,winsftp经常被服务器断开,想必是过一会没有操作,防火墙喜欢对 ...

  3. 阿里云 CentOS6.5 ssh连接慢的解决方案

    我租了一台阿里云深圳的服务器,用的是CentOS6.5的系统,最近要在服务器上小改点代码,但是不管用private shell 还是securecrt工具连接,连上去后,都特别慢,经常敲一段代码要过个 ...

  4. ssh连接超时问题解决方案

    方法一: 1.设置服务器向SSH客户端连接会话发送频率和时间 #vi /etc/ssh/sshd_config,添加如下两行ClientAliveInterval 60ClientAliveCount ...

  5. ssh连接超时问题解决方案,每一种方案都可以

    1.服务端修改 vim /etc/ssh/sshd_config 修改 ClientAliveInterval 60 ClientAliveCountMax 40 60秒,向客户端发送一次请求. 超过 ...

  6. SSH登录卡顿解决方案

    在使用ssh远程登录Linux主机时,经常出现需要等待一段时间才能登录,甚至登录超时的情况 原因一:SSH服务器默认开启了DNS的查询功能:UseDNS=yes 当UseDNS选项处于开启状态时,客户 ...

  7. ssh远程登录故障解决方案

    问题描述: xshell远程连接服务器连接不上,如下图所示: 故障排除: . 首先查看自己系统的防火墙是否关闭,没有关闭的话关闭一下. # centos 7中关闭防火墙命令: systemctl st ...

  8. mac ssh 远程容易断线解决方案

    编辑文件 /etc/ssh/ssh_config 添加下面两行 ServerAliveInterval 60 ServerAliveCountMax 3 说明一下: #server每隔60秒发送一次请 ...

  9. Ubuntu安装ssh,及失败解决方案

    网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-server服务.最终成功的方法如下: ...

随机推荐

  1. 腾讯云centos7 从零搭建laravel项目

    目标,访问网站出现: -----------------------分割线---------------------------------------- 一.Laravel Homestead 环境 ...

  2. IO流3

    public class Test1 { public static void main(String[] args) throws Exception { //第二个参数,表示是否向末尾追加,tru ...

  3. js里的window对象

    alert(<msg>)                   向用户显示对话框窗口并等候其被关闭 blur()                               让窗口失去键盘焦 ...

  4. Scrapy框架安装失败解决办法

    安装报错信息 正常安装: pip3 install scrapy 出现报错信息如下: 两种解决办法 第一种方法 最根本得解决办法 需要我们安装  Microsoft Visual C++ 14.0  ...

  5. Java连载10-数据类型取值范围&转义字符

    一.数据类型取值范围 二.八种数据类型在成员变量中的默认值 (1)成员变量,没有赋值,编译不会报错,系统会自动给赋值 byte\int\short\long默认值为0:float\double默认值为 ...

  6. TensorFlow学习笔记——深层神经网络的整理

    维基百科对深度学习的精确定义为“一类通过多层非线性变换对高复杂性数据建模算法的合集”.因为深层神经网络是实现“多层非线性变换”最常用的一种方法,所以在实际中可以认为深度学习就是深度神经网络的代名词.从 ...

  7. Dialog 使用详解

    极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以 ...

  8. JAVA基础——Switch条件语句

    JAVA基础——switch 条件语句 switch语句结构: switch(表达式){ case值1: 语句体1: break: case值2: 语句体2: break: case值3: 语句体3: ...

  9. pytest

    pytest可以生成多种样式的结果:1.生成JunitXML格式测试报告:命令: --junitxml=path(相对路径)2.生成result log 格式的测试报告: 命令:--resultlog ...

  10. Activiti6系列(1)- 核心数据库表及字段注释说明

    前言 本文是根据<疯狂工作流讲义-Activiti6.0>一书中提取过来的,有兴趣的可以去当当网买这本书,讲的很不错,最后还有实战案例. 虽然是提取过来的,但完全靠手打梳理,觉得有用的小伙 ...