[color=red][size=x-large]清理快取[/size][/color]是指session快取中的物件按照屬性的變化來更新資料庫。
session會在清理快取時判斷快取中物件是否【屬性】有變化,有變化則更新資料庫。
[color=red]如何判斷屬性變化: [/color]session會在物件加入緩時為物件建立乙個副本,在清理快取時,通過把加入快取時的副本與當前快取比較,如果有變化則說明是需要重新整理資料。會根據變化物件的屬性執行一條update語句。
[size=large][color=orange]何時清理快取:[/color][/size]
(1)呼叫transaction的[color=red]commit()[/color]函式提交事務之前會清理快取。
(2)呼叫session的[color=red]flush()[/color]時會清理快取
(3)執行某些查詢操作之前,會清理快取重新整理資料庫,再查詢。保證資料的一致性。
[size=large][color=orange]手動維護快取:[color][/size]
(1)session的evict(object o)函式可以在快取中刪除對應的物件(一般用於批量處理)
(2)session的clear()函式清空快取中的持久化物件
Hibernate 一級快取
1.session級別的快取,同session繫結,生命週期和session相同,當session銷毀,它也清除。管理以及快取的方法有clear evict clear清除session快取,evict將某個物件清除快取,相當於成為游離態detached。2.是實體級別的快取,只有在查詢物件級別的時...
Hibernate 一級快取
1.快取 hibernate中也存在快取.hibernate中存在的快取也是用來提高效率.2.hibernate中存在兩種快取 1 執行緒級別的快取.session快取 2 程序級別的快取.hibernate 二級快取 3.session快取 就是session物件中存在的快取.快取中存在的是 持久...
hibernate 一級快取
若 號碼中已經有這個號碼,那麼將它的擴充套件碼自動增加1,以保證每次傳送的 號碼加擴充套件碼組成唯一號碼 public synchronized void updateextcode string phonenumber throws exception 專案中一段邏輯是 1 通過 手機號 字段找到...