hibernate二級快取

2021-09-01 10:10:50 字數 1068 閱讀 3902

hibernate二級快取

在乙個資料庫系統中,如果快取設定的合適,那麼可以極大的提高系統的效率,hibernate作為乙個orm工具

提供了快取的機制,包括一級(session級)快取和二級(sessionfactory級)快取。這裡主要總結一下二級快取。

1.首先需要在hibernate.cfg.xml中配置,當然需要匯入快取的jar包

true

org.hibernate.cache.ehcacheprovider

hibernate.cache.use_query_cache必須配置,如果想快取使用findall()、list()、iterator()、createcriteria()、

createquery()等方法獲得的資料結果集。

2.在每個實體的hbm檔案中配置cache元素,usage可以是read-only或者是read-write等。

如果相對具體某個類的快取進行特定的配置,需要在ehcache.xml進行配置:

3.query或criteria()時設定其setcacheable(true);

session session = hibernatesessionfactory.getcurrentsession();

query q = session.createquery("from city");

q.setcacheable(true);

return q.list();

session session = hibernatesessionfactory.getcurrentsession();

query q = session.createquery("from district d where d.city.citycode='" + cityid + "'");

q.setcacheable(true);

return q.list();

執行以上**時,第一次會查詢資料庫,但是後面就直接從快取中查詢,而不會使用資料庫的連線,提高了效能。

以上任一環節都不能少,比如cache元素沒有配置,那麼就會導致查詢district的時候發起n個資料庫的連線,這樣會極大的降低效能。

hibernate二級快取

cacheconcurrencystrategy.none cacheconcurrencystrategy.read only 唯讀模式,在此模式下,如果對資料進行更新操作,會有異常 cacheconcurrencystrategy.read write 讀寫模式在更新快取的時候會把快取裡面的資料...

hibernate 二級快取

session快取 一級快取 sql查詢結果快取,由hibernate管理 sessionfactory內建快取,內建快取是hibernate自帶的,用於存放預定義的sql以及hbm.xml描述的元資料,不可解除安裝 sessionfactory外接快取 二級快取 由外部外掛程式提供,外接快取的資料...

Hibernate二級快取

hibernate的session在事務級別進行持久化資料的快取操作。當然,也有可能分別為每個類 或集合 配置集群 或jvm級別 sessionfactory級別 的快取。你甚至可以為之插入乙個集群的快取。注意,快取永遠不知道其他應用程式對持久化倉庫 資料庫 可能進行的修改 即使可以將快取資料設定為...