欢迎来到天天文库
浏览记录
ID:40054888
大小:419.05 KB
页数:23页
时间:2019-07-18
《ssh企业培训之数据抓取策略与高速缓存》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据抓取策略与高速缓存介绍讲授:刘晓涛Email:lxt008@163.comBlog:http://blog.csdn.net/liuxiaotao008MSN:lxt008@live.cn数据加载策略与优化。高速缓存讨论(含批量处理)。对象同一性。复合主键。触发器/数据库生成值的处理。计算列的处理。本章目标数据加载策略与优化延迟加载加载代理(往往是ID),真正用到数据时才加载关联数据。lazy=“true”,默认值。即时加载一条SQL语句连接查询,fetch=“join”。两条SQL语句单独查询,fetch=“select”。批量加载设置batch-size属性。
2、Hibernate抓取策略1.保持默认,同fetch="select",如:fetch="select",另外发送一条select语句抓取当前对象关联实体或集合2.设置fetch="join",如:fetch="join",hibernate会通过select语句使用外连接来加载其关联实体或集合此时lazy会失效3.保持默认,同fetc
3、h="select",如:fetch="select",另外发送一条select语句抓取当前对象关联实体或集合4.设置fetch="join",如:fetch="join",hibernate会通过select语句使用外连接来加载其关联实体或集合此时lazy会失效Hibernate抓取策略5.设置fetch="subselect",
4、如:fetch=“subselect”,另外发送一条select语句抓取在前面查询到的所有实体对象的关联集合,合适的时候使用子查询。6.batch-szie在上的应用batch-size属性,可以批量加载实体类,参见:Classes.hbm.xml7.batch-szie在集合上的应用batch-size属性,可以批量加载实体
5、类,参见:Classes.hbm.xmlhibernate一级缓存一级缓存和session的生命周期一致下面方法支持一级缓存:get()load()iterate(缓存实体对象而不是属性)如何管理一级缓存:session.clear()session.evict()如何避免一次性大量的实体数据入库导致内存溢出先flush,再clear如果数据量特别大,考虑采用jdbc实现,如果jdbc也不能满足要求可以考虑采用数据本身的特定导入工具。hiberna
6、te二级缓存也称为进程级的缓存或SessionFactory级缓存,可以被所有的session共享二级缓存的生命周期和SessionFactory的生命周期一致。二级缓存的配置和使用:将echcache.xml文件拷贝到src下开启二级缓存,修改hibernate.cfg.xml文件true指定缓存产品提供商,修改hibernate.cfg.xml文件7、s">org.hibernate.cache.EhCacheProvider指定那些实体类使用二级缓存(两种方法)在映射文件中采用标签在hibernate.cfg.xml文件中,采用标签二级缓存是缓存实体对象的对象同一性同一性概念数据库中一条记录在内存中应该只有一种表示。同一性级别事务(session)级别。过程(SessionFactory)级别(多个session中保证同一性)。JVM级别。分布式系统级别。Hibernate保证事务(session)级别的实体对象的同一性。其他级别不保
7、s">org.hibernate.cache.EhCacheProvider指定那些实体类使用二级缓存(两种方法)在映射文件中采用标签在hibernate.cfg.xml文件中,采用标签二级缓存是缓存实体对象的对象同一性同一性概念数据库中一条记录在内存中应该只有一种表示。同一性级别事务(session)级别。过程(SessionFactory)级别(多个session中保证同一性)。JVM级别。分布式系统级别。Hibernate保证事务(session)级别的实体对象的同一性。其他级别不保
此文档下载收益归作者所有