1、一级缓存,即session缓存、事务级缓存(通常一个session对应一个事务),该缓存是hibernate特有的,不能取消只能维护和管理,它是以实体的ID作为key,实体的值作为value进行缓存的,一级缓存的生命周期是存在于一个线程范围内的,它起始于Session的开启,止于session的关闭。
2、二级缓存,又叫hibernate进程级缓存,hibernate本身并没有二级缓存,但它提供了支持第三方缓存组件的接口和整合机制,常用的第三方组件比如ehcache,就是通过hibernate的继承配置无缝接入到hibernate中,并又hibernate来实现二级缓存的读写管理等操作,二级缓存的存储也是通过实体的id和值来存储的,但二级缓存的生命周期是起始于一个线程的开启,结束于一个线程的关闭。
3、查询缓存本质上也是二级缓存,但是它只属于二级缓存的一部分,他们两者是分开来管理的,同时开启了二级缓存不等于开启了查询缓存,但开启查询缓存一定要先开启二级缓存。查询缓存中缓存实体sql语句,查询参数等作为key,以实体的值或者实体的属性作为value进行缓存。
注:本人只是初学者,有写的不对的地方请大家及时指正,帮助大家进步!谢谢大家
时间: 2024-10-24 14:27:30