hibernate缓存机制

来源:互联网 发布:beanpole 知乎 编辑:程序博客网 时间:2024/06/07 22:51

Ehcache

hibernate缓存,一级缓存session 事务范围的缓存。一级缓存中,持久化的每一个实例都有唯一的OID

二级缓存sessionFectory 进程范围或集成范围的缓存,并发访问策略 ,事务隔离级别 

缓存应用,hibernate通过id查询对象时会先从一级缓存中查

适合存在二级缓存中的数据:

1、常量数据

2、很少被修改的数据

3、不会被并发访问的数据

一级缓存的管理:

evict( Object  obj) 将指定的持久化对象从一级缓存中清除,释放对象所占的内存资源,使持久化对象转为游离对象

clear() 将一级缓存中的所有持久化对象清除,释放系统资源

contains(Object obj) 判断指定的对象是否存在于一级缓存中

flush() 刷新一级缓存区的内容,使其与数据库保持同步

二级缓存的管理:

evict(Class arg0  Serializable arg1) 将某个类指定的ID的持久化对象从二级缓存中清除

evict(Class arg0)将指定类的所有持久化对象从二级缓存中清除

evictCollecton(String arg)将指定类的所有持久化对象指定的集合从二级缓存中清除