讀了幾本Head First的書,發現有點被這套書給寵壞的感覺,讀起其他的書,有些不輕鬆,摘起來也不太容易,下面是對某些專題的採摘,從Session開始吧——
1、Session 接口是Hibernate 嚮應用程序提供的操作數據庫的最主要接口,提供了增刪改查Java對象的方法。
Session具有一個緩存,位於緩存中的對象稱爲持久化對象,它與數據庫中的相關記錄對應。
Session能按照緩存中對象的變化執行SQL語句,來同步更新數據庫,這一過程成爲清理緩存(flush)。(P179)
2、集合中存放的是Java對象的引用。(P180)
3、Session的get()方法先到Session緩存中查找OID爲X的對象,如果對象X不存在,就通過SQL select語句到數據庫中去加載該對象,並放在Session緩存中,當第二次調用get()方法時,由於緩存中存在X對象,就會直接返回該X對象的引用。(P182~183)
4、當一個對象加入到Session緩存中時,Session會爲該對象的值類型屬性複製一份快照(SnapShot),當清理緩存時,會比較當前對象和快照,判斷對象是否發生變化,從而判斷是否執行SQL語句來同步數據庫。(P184)