hibernate緩衝機制

來源:互聯網
上載者:User

標籤:res   path   實體   clear   ssi   屬性   返回   target   資料庫查詢   

hibernate一級緩衝

1.Hibernate一級緩衝又稱為“Session緩衝”,“會話級緩衝”。

2.通過Session從資料庫查詢實體時會把實體在記憶體中儲存起來,下一次查詢同一實體時不再從資料庫擷取,而是從記憶體中擷取,這就是緩衝

3.一級緩衝的生命週期和Session相同,Session銷毀,它也銷毀。

4.一級緩衝中的資料可適用範圍在當前會話之內。

 

管理一級緩衝的API

1.evict(),用於將某個對象從Session的一級緩衝中清除。

2.clear(),用於將一級緩衝中的所有對象全部清除。

 

Qurey.list()和Qurey.iterate()

1.Qurey.list()查詢資料,不會從緩衝中尋找,直接向資料庫發送sql語句,將查詢返回的對象保留在緩衝中。

2.Qurey.iterate()直接向資料庫發送sql,查詢id,當需要使用對象其他屬性的時候,先在緩衝中根據id尋找對象,如果沒有則向資料庫發送sql查詢,因此單獨用該方法查詢會產生N+1問題(即向資料庫發送N+1條語句查詢N個對象的資訊)

 

hibernate二級緩衝(SessionFactory緩衝)

1.添加在hibernate.cfg.xml裡面的配置

        <!-- 開啟二級緩衝 -->        <property name="hibernate.cache.use_second_level_cache">true</property>        <!-- 二級緩衝的提供類 在hibernate4.0版本以後我們都是配置這個屬性來指定二級緩衝的提供類-->        <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>        <!-- 二級緩衝設定檔的位置 -->        <property name="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</property>

2.配置ehcache.xml具體見http://www.cnblogs.com/kundeg/p/7172428.html 

3.通過注釋配置entity,在類前加上@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)

 CacheConcurrencyStrategy屬性值常見的有READ_ONLY(對該entity對應的表資料唯讀取然後緩衝)和READ-WIRTE(對錶資料可以讀取也可以更新)

4,一定要注意:hibernate二級緩衝的必須是整個對象,如果查詢的只是對象某些屬性,那麼該對象不會被緩衝

 

hibernate的三種狀態(transient(瞬時狀態),persistent(持久化狀態)以及detached(離線狀態))

 詳情見http://www.cnblogs.com/xiaoluo501395377/p/3380270.html

 

hibernate緩衝機制

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.