关于Hibernate性能优化之 FetchType=Lazy时查询数据
当表A和表B一对多的关系 对于A和B的实体类,设置FetchType=EAGER时,取A表数据,对应B表的数据都会跟着一起加载,优点不用进行二次查询。缺点是严重影响数据查询的访问时间。 解决办法FetchType=LAZY,此时查询的访问时间大大缩短,缺点是查询表A 的数据时,访问不到表B的数据。 解决办法尝试一,在web.xml中加入下面配置,表示在页面中关闭session <!-- 把session的关闭延迟到jsp页面显示之后,在配在struts2上面。-->
<filter>
<filter-name>OpenSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
出现的问题是:新增加一条记录回到列表页面,对应的B表数据还是没有。
解决办法尝试二:
在session未关闭前循环List,显示调用,举例如下
for(B b:bList){
b.getA();
}
出现问题:如果debug模式,可以获得A信息,如果tomcat正常运行模式,还是取不到A。没有具体研究是不是因为我们实在ManyToOne多的端取一端。
解决办法三:此办法可以应用
for(B b:bList){
Hibernate.initialize( b.getA());
}
解决办法四:此办法也可以应用
在session关闭后,我可以循环
for(B b:bList){
int aId = b.getA().getId();
A a = findAById(aId);
b.setA(a);
}
来源:https://blog.csdn.net/janefir/article/details/19555803
关于Hibernate性能优化之 FetchType=Lazy时查询数据的更多相关文章
- 8.Hibernate性能优化
性能优化 1.注意session.clear() 的运用,尤其在不断分页的时候 a) 在一个大集合中进行遍历,遍历msg,取出其中额含有敏感字样的对象 b) 另外一种形式的内存泄漏( //面试题:Ja ...
- Hibernate性能优化之EHCache缓存
像Hibernate这种ORM框架,相较于JDBC操作,需要有更复杂的机制来实现映射.对象状态管理等,因此在性能和效率上有一定的损耗. 在保证避免映射产生低效的SQL操作外,缓存是提升Hibernat ...
- Hibernate性能优化
1.性能是与具体的项目挂钩的,并不是对于A项目某种优化方法好就适用于B项目.性能需要不断的测试检验出来的.....(废话) 2.session.clear()方法的使用,通常session是有缓存的 ...
- Hibernate 性能优化一对一关联映射
概述: hibernate提供了两种映射一对一关联的方式:按照外键映射和按照主键映射. 下面以员工账号和员工档案为例 ,介绍两种映射方式,并使用这两种映射方式分别完成以下持久化操作: (1)保存员工档 ...
- hibernate 性能优化之 1+N 问题
1. 注意 session.clear()的运用,尤其在不断分页查询的时候 a) 在一个大集合中进行遍历,遍历 msg,去除其中的含有敏感字样的对象 b) 另外一种形式的内存泄漏 面试题:Java 有 ...
- FetchType.LAZY 时属性加上@JsonIgnore,避免返回时报错:Could not write JSON: failed to lazily initialize a collection of role
[示例] @OneToMany(fetch=FetchType.LAZY) @JsonIgnore @Fetch(FetchMode.SELECT) @Cascade(value={CascadeTy ...
- 高性能mysql 第六章查询性能优化 总结(上)查询的执行过程
6 查询性能优化 6.1为什么查询会变慢 这里说明了的查询执行周期,从客户端到服务器端,服务器端解析,优化器生成执行计划,执行(可以细分,大体过程可以通过show profile查看),从服务器端返 ...
- 02.SQLServer性能优化之---牛逼的OSQL----大数据导入
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 上一篇:01.SQLServer性能优化之----强大的文件组----分盘存储 http ...
- Hibernate性能优化之SessionFactory重用
Hibernate优化的方式有很多,如缓存.延迟加载以及与SQL合理映射,通过对SessionFactory使用的优化是最基础的. SessionFactory负责创建Session实例,Sessio ...
随机推荐
- Unity动态创建FBX模型配置文件的存放路径
创建前目录结构: 创建后的目录结构: using System.Collections; using System.Collections.Generic; using UnityEngine; us ...
- 15分钟入门lua
目录:[ - ] -- 1. Variables and flow control. -- 2. Functions. -- 3. Tables. -- 3.1 Metatables and meta ...
- 无法打开物理文件“xxxx.mdf”。操作系统错误 5:“5(拒绝访问)”
- Oracle数据库的“健康指示器”——事件(events)
Oracle数据库“赢在”在架构,这话还是有道理的,除了锁(lock)这个最大的架构上的“赢点”之外,Oracle事件(event)也是另外一个很重要的架构上的“赢点”,因为当今的Oracle数据库, ...
- top k
def top_k(arr, left, right, k): if left >= right: return pivot = arr[right] index = left for i in ...
- Instantclient安装
Instantclient安装 成功
- windows创建窗口、关闭窗口流程
NC,即 non-client 区域,包括标题栏.窗口边框.最大.最小按钮.滚动条等. 一.在调用Windows的::CreateWindowEx函数创建窗口时,一般会先发出 WM_NCCREATE消 ...
- CF 459A && 459B && 459C && 459D && 459E
http://codeforces.com/contest/459 A题 Pashmak and Garden 化简化简水题,都告诉平行坐标轴了,数据还出了对角线,后面两个点坐标给的范围也不错 #in ...
- 主席树模板(poj 2104&&poj2761)
主席树,就是n个线段树,用nlonn的空间实现 首先建立第一个线段树 把要查询的值离散化,建立值的线段树 每一次加入一个点 显然每一次只会修改logn个点 把其他的点直接建边连接即可 代码: #inc ...
- U盘安装Ubuntu三步走
需要工具: U盘.Ubuntu的ISO镜像.universal usb installer 1.下载Ubuntu (1) (2)我这里下载14.04版本 (3)我这里下载64位系统 下载后得到的是个t ...