Hibernate的缓存问题

来源:互联网 发布:网络直播造娃在线播放 编辑:程序博客网 时间:2024/06/10 23:50
hibernate缓存:
 缓存作用:提高查询性能,
 (1)一级缓存:
 一级缓存是线程共用的,二级缓存是大家共用的!
 session缓存、事务缓存,提交后就没了!session缓存与一级缓存同时创建!
 session (){
   Map<key,Object>: key就是id,Object是对象
 }         
  1> get()、load()、save()都支持!
 查询对象中的某个属性不支持一级缓存;查询一个对象也不支持!
  2> 一级缓存创建:当session创建,一级缓存创建              
  session.save()|load()|get()后添加到一级缓存中(map.put())
  一级缓存销毁:当session  close时,销毁
  3> 一级缓存管理:
  session.evict(object):逐出某个对象
  session.clear():清空一级缓存
  session.close():关闭session,清空一级缓存
  4>hibernate 批量插入:
       (a)session.flush();//刷新缓冲区,把数据写入到磁盘或者数据库中
         (b)session.clear():清空缓冲区
         (c)session.getTransaction().commit();
  总之:一级缓存在一个session中有效!!!
  (2)二级缓存
  二级缓存也叫sessionFactory,可以在不同的session中使用
   查询缓存:主要是缓存查询对象中的属性    
          不能缓存查询一个对象        
查询缓存+二级缓存:解决缓存一个对象
总之:对象执行查询比较多建议使用hibernate缓存
        对象执行添加、删除、更新建议不要使用缓存  
原创粉丝点击