a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 98|回复: 0

[JAVA] JAVA基础知识:Hibernate缓存机制(2)

[复制链接]
发表于 2012-7-31 22:04:26 | 显示全部楼层 |阅读模式
  Java代码
# W2 T) Y- p  _( i1 n  sessionFactory.evict(Customer.class, new Integer(1));8 U' w; s7 h9 l6 H# ^  F) s& W
  evict(Class arg0) 将指定类的所有持久化对象从二级缓存中清除,释放其占用的内存资源.; v$ j7 v8 d8 _- `; S" G( v7 s) y
  Java代码
9 _2 G5 G7 ~. u9 E  sessionFactory.evict(Customer.class);
) F; l/ e* t6 o# h  evictCollection(String arg0) 将指定类的所有持久化对象的指定集合从二级缓存中清除,释放其占用的内存资源.
" p' e4 P  u0 _( ^6 `. X% ?/ N% l  Java代码  G* C5 V, Y; j) J2 i' U3 e: l
  sessionFactory.evictCollection("Customer.orders");
2 p7 K* x9 U1 J  Hibernate的二级缓存的配置
* g7 |* B( a2 H  \$ y2 s  首先,不是所有的数据都适合放在二级缓存中,看一下,什么样的数据适合放在二级缓存中来?什么样的数据不适合放在二级缓存中来?' |# |7 a0 R- Q5 l; L; E
  下面这几种情况就不适合加载到二级缓存中:$ i0 Q" Z  h* T$ W* y% B5 S
  1.经常被修改的数据) t3 T$ Z& j5 h7 x: a
  2.绝对不允许出现并发访问的数据7 }, `. m6 g/ W% S$ Q# l& s) z+ b
  3.与其他应用共享的数据2 p* S5 n5 n* k. r" F' N
  下面这己种情况合适加载到二级缓存中:
% Y0 `4 X- |: i. R  1.数据更新频率低! k/ Z. ^5 t! q. i
  2.允许偶尔出现并发问题的非重要数据
1 C% d6 c$ l3 L! @# J: V) U' _  3.不会被并发访问的数据5 b4 C0 R9 j6 Y
  4.常量数据0 q: Z/ C& K' G+ Y" {
  5.不会被第三方修改的数据
, N/ K2 M* T- k  k  Hibernate的二级缓存功能是靠配置二级缓存插件来实现的,Hibernate为了集成这些插件,Hibernate提供了org.hibernate.cache.CacheProvider借口,它充当缓存插件与Hibernate之间的适配器 .0 L' I' t4 s# b9 i" J, s1 }% E
  常用的二级缓存插件0 i% X* O% a4 C' r
  EHCache org.hibernate.cache.EhCacheProvider
6 i7 Q- K3 F. z! s  ~: u9 G* H  OSCache org.hibernate.cache.OSCacheProvider
) o5 P* F" ]) ~8 _: Q  SwarmCahe org.hibernate.cache.SwarmCacheProvider
6 F( `$ o: e% g2 k  JBossCache org.hibernate.cache.TreeCacheProvider
. }! h7 N) x( F  简单介绍一下EHCache的配置
$ e2 R4 n$ L6 c' @! H  hibernate.cfg.xml: [9 R7 U: x! |7 m( V3 u( ^: a
  Xml代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-3 02:44 , Processed in 0.377458 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表