Hibernate中的缓存机制


缓存概念:

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

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

Hibernate中的缓存:

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

一级缓存:

介质:内存。

生命周期:session级别。

保存对象:实体。

二级缓存:

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

介质:内存和硬盘。

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

保存对象:实体。

查询缓存:

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

介质:内存和硬盘。

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

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

相关内容