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級別 的快取。你甚至可以為之插入乙個集群的快取。注意,快取永遠不知道其他應用程式對持久化倉庫 資料庫 可能進行的修改 即使可以將快取資料設定為...