hibernate缓存

来源:互联网 发布:税控开票软件税控盘版 编辑:程序博客网 时间:2024/05/20 09:07

在hibernate中缓存不需要做任何配置,但多了解一下还是很有助于写代码的

借用缓存,有时候分开查询比联合查询的速度更快。


缓存类型:

  1.一级缓存
  2.二级缓存
  3.查询缓存
  

一级缓存:

1.也叫做session级的缓存,它的生命周期也session一样,当session关闭的时候一级缓存清空

    2. 一级缓存只能缓存对象 
    
 load方法:支持一级缓存
 get方法:支持一级缓存
 
 iterator()方法:
   因为它有N+1的问题,所以要分开说:
  N:这部分是支持一级缓存
  1:这部分是不支持的。
 save:把对象放到了缓存中,如果在同一个session中,先save再load的话
 是不会发出sql语句的。
 
 缓存的管理:
    用session来管理缓存,使用clear()和evict()方法,清空缓存
    
二级缓存:
   1.只能缓存实体对象
   2.sessinFactory级的缓存
   
举例:两个session两次load

第一次load的时候,把对象放到了一级缓存和二级缓存,当sesion关闭的时候
只清空了一级缓存,下一次再load的时候,会先到一级缓存中去找,如果开启了
二级缓存就再到二级缓存中去找。


配置:(ehcache)

以下配置其实hibernate默认是开启的,所以不需要写任何内容!!,now,下面是解释:

在hibernate.cfg.xml中配置
   1.手工开启二级缓存
  <property name="hibernate.cache.use_second_level_cache">true</property>
  2.手工编写提供商
  <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
  3.指明那个类使用二级缓存
  <class-cache usage="read-only" class="com.sxdx.hibernate.vo.Book"/>
  注意:这句话放在<mapping>之后
1 0
原创粉丝点击