hibernate缓存2

转载 2012年03月21日 16:32:46

四、缓存的管理

  Hibernate的缓存管理
一级缓存的管理:
  evit(Object obj)  将指定的持久化对象从一级缓存中清除,释放对象所占用的内存资源,指定对象从持久化状态变为脱管状态,从而成为游离对象.
  clear()  将一级缓存中的所有持久化对象清除,释放其占用的内存资源
  contains(Object obj) 判断指定的对象是否存在于一级缓存中.
  flush() 刷新一级缓存区的内容,使之与数据库数据保持同步.

  二级缓存的管理:   
   evict(Class arg0, Serializable arg1)  将某个类的指定ID的持久化对象从二级缓存中清除,释放对象所占用的资源.

evictCollection(String arg0)  将指定类的所有持久化对象的指定集合从二级缓存中清除,释放其占用的内存资源.

如何避免一次性大量的实体数据入库导致内存溢出
*先flush,再clear

如果数据量特别大,考虑采用jdbc实现,如果jdbc也不能满足要求,可以考虑采用数据库本身的特定导入工具

五、什么样的数据不适合放在二级缓存中来?
  下面这几种情况就不适合加载到二级缓存中:
  1.经常被修改的数据
  2.绝对不允许出现并发访问的数据
  3.与其他应用共享的数据
  下面这己种情况合适加载到二级缓存中:
  1.数据更新频率低
  2.允许偶尔出现并发问题的非重要数据
  3.不会被并发访问的数据
  4.常量数据
  5.不会被第三方修改的数据

六、二级缓存的配置

Hibernate的二级缓存功能是靠配置二级缓存插件来实现的,Hibernate为了集成这些插件,Hibernate提供了org.hibernate.cache.CacheProvider借口,它充当缓存插件与Hibernate之间的适配器 .

常用的二级缓存插件
EHCache  org.hibernate.cache.EhCacheProvider
OSCache  org.hibernate.cache.OSCacheProvider
SwarmCahe  org.hibernate.cache.SwarmCacheProvider
JBossCache  org.hibernate.cache.TreeCacheProvider

设置hibernate.cache.provider_class。

我们这里用ehcache,如
hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider
由于这是HIBERNATE默认的CACHE提供者, 所以无须做什么设置.

只要在src中添加ehcache的配置文件ehcache.xml:

<ehcache>

    <diskStore path="java.io.tmpdir"/> 

    <defaultCache   maxElementsInMemory="10000"   eternal="false"  timeToIdleSeconds="120"          timeToLiveSeconds="120"  overflowToDisk="true"   />  

    <cache name="goncha.hb.bean.Person"   maxElementsInMemory="10"       eternal="false"   

        timeToIdleSeconds="100"  timeToLiveSeconds="100"  overflowToDisk="false"   />    

      <cache name="goncha.hb.bean.Address"  maxElementsInMemory="10"     eternal="false"   

        timeToIdleSeconds="100"  timeToLiveSeconds="100"  overflowToDisk="false"    />    

</ehcache> 

相关文章推荐

Hibernate二级缓存配置(2)

一、hibernate二级缓存对于集合的配置。 看一下测试代码@Test public void test5(){ Department dept = (Department)...

心得15-hibernate的优化2-缓存(一级、二级)

1.缓存概述     缓存(cache)在java应用程序中是一组内存中的集合实例。它保存着永久性存储源(如硬盘上的文件或者数据库)中数据的备份,它的读写速度比读写硬盘的速度快。应用程序在运行时直接...

spring boot集成ehcache 2.x 用于hibernate二级缓存

spring boot集成ehcache 2.x 用于hibernate二级缓存[TOC] 本文将介绍如何在spring boot中集成ehcache作为hibernate的二级缓存。各个框架版本如...

Hibernate框架——缓存(2)

三、二级缓存 1.1 二级缓存 因为一级缓存不能跨session存在,但是在多线程(同步)的情况下,可能会出现多个session需要共享同一份数据,为了避免频繁访问数据库,所以二级缓存应运而生! 因为...

spring学习笔记16--Spring2.x+Hibernate3.x +Struts1.x整合开发(4)-----Hibernate3.x配置二级缓存

一、导入hibernate二级缓存的所用的jar包------------------ehcache-1.2.3.jar 二、在spring配置文件中配置Hibernate的二级缓存相关属性(红色为...

Spring,Hibernate,Struts2性能优化(一):Hibernate缓存性能优化

看到一篇不错的文章,于是转载过来. 几月前, 我接到一个银行的J2EE应用系统JSF+HIBERNATE+SPRING+WebService性能优化合同,静下心来几个月好好研究了一下J2EE...

Hibernate中 一 二级缓存及查询缓存(2)

缓存:缓存是什么,解决什么问题?  位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为缓存Cache。缓存目的:让数据更接近于应用程序,协调速度不匹配,使访问速度...

J2EE系列之Hibernate4学习笔记(十九)--hibernate高级配置(配置hibernate二级缓存)

首先要明确一下几点信息: 1,缓存的概念: 缓存是介于物理数据源与应用程序之间,是对数据库中的数据复制一份临时放在内存或者硬盘中的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高...

Hibernate二级缓存.doc

  • 2012-06-05 12:30
  • 32KB
  • 下载

hibernate缓存

  • 2012-10-04 23:37
  • 40KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)