二级缓存是为一级缓存服务的,没有一级缓存,二级缓存就没有意义。
二级缓存弥补了一级缓存的不足
二级缓存是第三方通过hibernate提供的接口来实现的
ehcache
适合放入二级缓存中的数据
很少被修改的数据
不是很重要的数据
供程序员操作的二级缓存4块区域:
类对象缓存(散装数据-->hibernate自己维护的非对象数据)
集合缓存(OID)
查询缓存(弥补hibernate不能识别sql的能力)
query.setCacheable(true)
时间戳缓存(确保二级缓存中数据安全性,update时会清空二级缓存)
executeUpdate
所有查询操作 get/load hql qbc sql 都会影响二级缓存
save,普通update不会影响二级缓存,因为可能commit失败。
快照update,会先get,就会影响二级缓存 |
|