hibernate三级缓存概括
hibernate三级缓存概括
挨踢精英 发表于3年前
hibernate三级缓存概括
  • 发表于 3年前
  • 阅读 1758
  • 收藏 7
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

摘要: 对hibernate三级缓存的个人理解与学习

Hibernate三级缓存

一级缓存(session级别缓存):

1、session关闭后,缓存就没了;hibernate发出一条sql查询,若缓存中没有,则从数据库中查,查到之后放入缓存

2、以id为key值缓存对象


二级缓存(sessionFactory级别缓存):

1.hibernate没有提供相应的二级缓存组件,所以需要额外的二级缓存包EHcache

2.hibernate二级缓存存的仅仅是对象,就算只想查询这个对象的某几个属性,还是会把这个对象的所有信息查询出来。

3.当一级缓存关闭之后,一级缓存就失效了,若这个对象配置了二级缓存,就算session关闭,hibernate会从二级缓存(sessionFactory)中查到数据。



三级缓存(查询缓存:sessionFactory级别):

1、查询缓存是专门针对各种查询操作进行缓存。查询缓存会在整个SessionFactory的生命周期中起作用,存储的方式也是采用key-value的形式来进行存储的。

       2、查询缓存中的key是根据查询的语句、查询的条件、查询的参数和查询的页数等信息组成的。而数据的存储则会使用两种方式,使用SELECT语句只查询实体对象的某些列或者某些实体对象列的组合时,会直接缓存整个结果集。而对于查询结果为某个实体对象集合的情况则只会缓存实体对象的ID值,以达到缓存空间可 以共用,节省空间的目的。

      3、在使用查询缓存时,除了需要设置hibernate.cache.provider_class参数来启动二级缓存外,还需要通过hibernate.cache.use_query_cache参数来启动对查询缓存的支持。


注:缓存一般只对查询比较对,更改比较少的数据进行设置,若修改较多反而会影响hibernate的效率。

标签: Hibernate缓存
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 2
博文 32
码字总数 8431
×
挨踢精英
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: