国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Hibernate <二級緩存>

2019-11-14 22:11:27
字體:
來源:轉載
供稿:網友
Hibernate <二級緩存>

二級緩存:

  定義:

      1.二級緩存被稱為進程級緩存或者sessionFactory級緩存,二級緩存可以被所有session共享

      2.二級緩存的生命周期和sessionFactory生命周期一樣(sessionFactory生命周期需要在配置中設定),sessionFactory可以管理二級緩存

      3.二級緩存的數據是一級緩存放入的,也就是說二級緩存與一級緩存雷同,也是存放的實體類對象,對普通屬性不執行緩存策略,不同的是生命周期的不同,二級緩存可以共享

  二級緩存需要配置才能夠生效:

    1.引入第三方包ehcache

    2.在hibernate.cfg配置:

    我們需要配置三個地方: 一個是驅動提供,二個是 開啟二級緩存,三個是配置需要緩存的實體類

 1 <!-- 二級緩存驅動提供 --> 2          <PRoperty name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property> 3         <!-- 二級緩存 --> 4          <property name="hibernate.cache.use_second_level_cache">true</property> 5        6 <!-- 緩存配置 --> 7 <class-cache usage="read-only" class="entity.Grade"/> 8 <!--與grade關聯的對象 --> 9 <class-cache usage="read-only" class="entity.Student"/>10 <collection-cache usage="read-only" collection="entity.Grade.stu"/>

    注意:

      1.由于hibernate.cache.use_second_level_cache默認是開啟的,我們也可以省略不寫

      2.常用緩存策略:read-only / read-write

      3.緩存原則:讀遠大于寫的時候使用緩存

    二級緩存在配置中開啟時:

      當業務不需要使用二級緩存時:

      HibernateUtils.getSessionFactory.evict(實體對象.class);

      or

      HibernateUtils.getSessionFactory.evict(實體對象.class,1);//指定具體

      當我們不希望查詢結果保存到二級緩存中:

      session.setCacheMode(CacheMode.IGNRE);//可以取消一級緩存和二級緩存之間的交互,這樣可以達到當前sesison不能狗向二級緩存中保存數據

    補充:

      昨天筆記中提到大數據緩存處理,當我們開啟二級緩存時,session.flush() session.clear()只能清除session級緩存,那么sessionFactory級/二級緩存怎么處理:

      這里我在視頻中學習到一種方法:

      在save 或這查詢前 取消一級緩存和二級緩存之間的交互,達到目的  

    

      


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沂源县| 永福县| 霍州市| 信阳市| 兴隆县| 义乌市| 新巴尔虎右旗| 乌海市| 囊谦县| 建始县| 西乡县| 长顺县| 安多县| 景东| 钟祥市| 高州市| 仁化县| 望城县| 桑植县| 儋州市| 河南省| 沧源| 高密市| 双牌县| 肃宁县| 汉川市| 阿克陶县| 噶尔县| 塔河县| 洪江市| 尉氏县| 三门县| 女性| 嵊泗县| 左权县| 中宁县| 含山县| 闵行区| 罗甸县| 凤山市| 平定县|