• hibernate一级和二级缓存介绍


    一级缓存
    Hibernate缓存包括两大类:Hibernate一级缓存和Hibernate二级缓存Hibernate一级缓存又称为“Session的缓存”,它是内置的,不能被卸载(不能被卸载的意思就是这种缓存不具有可选性,必须有的功能,不可以取消session缓
    在第一级缓存中,持久化类的每个实例都具有唯一的OID存

    。在缓存中的对象,具有持久性,session对象负责管理.一级缓存的优点是使用同一个session对象多次查询同一个数据对象,仅对数据库查询一次
    例如:session.load(User.class,1);
          session.load(User.class,1);

    。一级缓存采用的是Key-Value的MAP方式来实现的。在缓存实体对象时,对象的主关键字ID是MAP的Key,实体对象就是对象的值。所以说一级缓存是以实体对象为单位进行存储的。访问的时候使用的是主键关键字ID。

    一级缓存使用的是自动维护的功能。但可以通过session提供的手动方法对一级缓存的管理进行手动干预。evict()方法用于将某个对象从session的一级缓存中清除。clear()方法用于将session缓存中的方法全部清除。

    Hibernate一级缓存是session级别的,所以如果session关闭后,缓存就没了,当我们再次打开session的时候,缓存中是没有了之前查询的对象的,所以会再次发送SQL语句。
    Session.get(User.class,1);
    Session.close();
    Session.get(User.class,1);
    二级缓存
    Hibernate二级缓存又称为“SessionFactory的缓存”,由于SessionFactory对象的生命周期和应用程序的整个过程对应,因此Hibernate二级缓存是进程范围或者集群范围的缓存,有可能出现并发问题,因此需要采用适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别。
    二级缓存分为:
    内置:配置文件加载映射文件元数据
    外置:第二级缓存
    第二级缓存是可选的,是一个可配置的插件,在默认情况下,SessionFactory不会启用这个插件。

    hibernate的二级缓存允许选用以下类型的缓存插件:
      1,EHCache:可作为进程范围内的缓存,存放数据的物理介质可以是内存或硬盘,对hibernate的查询缓存提供了支持。
      2,OpenSymphony OSCache:可作为进程范围内的缓存,存放数据的物理介质可以是内存或硬盘,提供了丰富的缓存数据过期策略,对hibernate的查询缓存提供了支持。
      3,SwarmCache:可作为群集范围内的缓存,但不支持hibernate的查询缓存。
      4,JBossCache:可作为群集范围内的缓存,支持事务型并发访问策略,对hibernate的查询缓存提供了支持

      二级缓存默认关闭,需要程序员手动开启。
    1.首先导入ehcache.jar二级缓存包。


    2.然后,在src下添加ehcache.xml配置,


    3.同时,在hibernate.cfg.xml中启用二级缓存
    <property name="hibernate.cache.use_second_level_cache"> true</property>
    <property name="hibernate.cache.provider_class"> net.sf.ehcache.hibernate.EhCacheProvider</property>。
    4.:指定使用二级缓存缓存哪种类型的对象,在hbm.xml中添加<cache region="sampleCache1" usage="read-only"/>

  • 相关阅读:
    mac 切换 默认xcode 版本
    mac 查看jenkins 管理员密码地址
    解决 mac ox 终端显示bogon 的问题
    eclipse 修改默认作者信息
    mac 查看 本地网络代理
    appium 解决 启动case 时不 重装 setting 和 unlock.apk的解决方案实践
    appium 输入时间慢的解决方案
    命令 关闭 appium 命令
    解决 appium could not start ios-webkit-debug-proxy
    PPT总结
  • 原文地址:https://www.cnblogs.com/Xuesk/p/6858401.html
Copyright © 2020-2023  润新知