Hibernate缓存技术

Hibernate的一级缓存:Session的缓存和SessionFactory的内置缓存,不可卸载。
Hibernate的二级缓存:SessionFactory的外置缓存,可插拔。
 
Session的缓存
Session缓存中存放的是数据库中数据的拷贝,在DB中表现为关系数据形式,而在Session缓存中表现为互相关联的对象。在读写DB时,Session会负责这两种数据形式的映射。 具体原理与作用在下一篇文字中详述。
 
SessionFactory的内置缓存
与Session的缓存类似,SessionFactory的内置缓存中存放了映射元素数据和预定义的SQL语句,预定义SQL是在Hibernate初始化阶段根据映射数据推导出来的。
 
SessionFactory的外置缓存
默认情况下Hibernate不启动这个缓存插件。
这是一个可配置的缓存,即本此讨论的二级缓存,是进程或群集范围内的缓存,缓存中存放的对象是散装数据。Hibernate允许选用以下类型的缓存插件:
EHCache:
OpenSymphony OSCache:
SwarmCache:
JBossCache:
这四种缓存插件都是由第三方提供的,为了把这些缓存插件集成到Hibernate中,Hibernate提供了CacheProvider接口,同时内置了CacheProvider的四种实现:
EhCacheProvider
OSCacheProvider
SwarmCacheProvider
TreeCacheProvider
这四个Provider分别与四个缓存插件一一对应。
 
使用二级缓存一定要注意并发访问策略,在<class>和<set>中都有<cache>子元素来设置并发访问策略。具体配置参照Hibernate文档即可。
 
另外,基本每个插件都有自己的配置文件,具体配置需要参考该插件的技术文档。

你可能感兴趣的:(Hibernate)