一級緩存:session級別的緩存
-
當獲得一次會話(session),hibernate在session中創建多個集合(map),用於存放操作數據(PO對象),爲程序優化服務,如果之後需要相應的數據,hibernate優先從session緩存中獲取,如果有就使用;如果沒有再查詢數據庫。當session關閉時,一級緩存銷燬。
-
強制刷新,讓一級緩存的數據與數據庫一至 session.flush();
一級緩存快照
-
快照:與一級緩存存放位置是一樣,對一級緩存數據備份。保證數據庫的數據與 一級緩存的數據必須一致。如果一級緩存修改了,在執行commit提交時,將自動刷新一級緩存,執行update語句,將一級緩存的數據更新到數據庫。
一級緩存注意:
- HQL會對數據進行session緩存
- SQL不會對數據進行session緩存
- Criteria會對數據進行一級緩存