Hibernate中的缓存机制

2014-11-24 13:47:33 · 作者: · 浏览: 3

缓存概念:


缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。


缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和缓存数据的生命周期。


Hibernate中的缓存:


Hibernate中的缓存主要分为三大类:


一级缓存:


介质:内存。


生命周期:session级别。


保存对象:实体。


二级缓存:


Hibernater的二级缓存是一个插件,常用的缓存插件有EhCache,OSCache等。


介质:内存和硬盘。


生命周期:SessionFactory级别和JVM级别。


保存对象:实体。


查询缓存:


一级和二级缓存是针对于ID查询的缓存策略,对于条件查询则毫无作用。为此,Hibernate提供了针对条件查询的Query缓存。


介质:内存和硬盘。


生命周期:不固定,当关联的表发生改变时,查询缓存的生命周期结束。


保存对象:缓存普通属性的结果集和实体对象的结果集的id。