Hibernate使用筆記

2022-05-06 17:00:11 字數 1940 閱讀 6782

// 首先返回乙個cglib by lazy loading的**物件

// 當該實體真正被使用時, load 會在2級、一級快取中載入實體物件,

// 如果實體不存在, 再去資料庫查詢資料, 而此時資料庫也不存在的話,則丟擲org.hibernate.objectnotfoundexception

pkvalue);

// get 也會先在2級、一級快取中載入實體物件,如果實體不存在,即到資料庫中去查詢,此時資料庫也不存在的話,則返回null

pkvalue);

//entity從session獲取後, 內部的collection屬性都變成hibernate內部集合實現類用以完成lazy load.

// ---------- xml configuration ------

//hibernate3多了fetch屬性,有兩種狀態select和join.

//當fetch=select的時候,我們查詢從表資料時候,首先會根據主表查處主表物件,然後根據主表id生成另乙個select語句去查詢從表資料,產生1+n的查詢效果

//當fetch=join的時候,hibernate會自動用一條外連線語句同時查詢主表和從表資料

//cascade和inverse的區別:

//cascade定義的是關係兩端物件到物件的級聯關係. 而inverse定義的是關係和物件的級聯關係

//inverse只對set+one-to-many(或many-to-many)有效, 對many-to-one, one-to-one無效. cascade對關係標記都有效.

// ----------  query ---------------

// list預設不使用一、2級快取,並且會往2級快取中加入資料, 但是查詢的時候並不使用2級快取

// 可配置查詢快取, 這樣就可讓list也使用2級快取

// iterator 預設使用1、2級快取.

// ------------ lock --------------------

// a) lockmode.none: 無鎖的機制,transaction結束時,切換到此模式

// b) lockmode.read: 在查詢的時候,hibernate會自動獲取鎖

// c) lockmode.write: insert、update實體時, hibernate會自動獲取鎖

// -   以上3中鎖的模式,是hibernate內部使用的

// d) lockmode.upgrade: 查詢時,對資料行加鎖。利用資料庫for update子句(悲觀鎖)

//  依靠資料庫提供的鎖機制方式。(也只有資料庫層提供的鎖機制才能真正保證資料訪問的排它性,

//  否則, 即使在本地系統中實現了加鎖機制, 也無法保證外部系統不會修改資料.)

// e) lockmode.upgrade_nowait: oracle 支援的鎖方式

// entity entity = session.load(entity.class, pkvalue, lockmode.upgrade);

//乙個典型的依賴資料庫的悲觀鎖呼叫:

// select * from account where name='erica' for update

//這條sql語句鎖定了 account 表中所有符合檢索條件 (name='erica')的記錄.

//本次事務提交之前(事務提交時會釋放事務過程中的鎖), 外界無法修改這些記錄.

//hibernate悲觀鎖實現(依賴與資料庫鎖機制):

// query query = session.createquery("from tuser where user.name='erica'");

// query.setlockmode("user", lockmode.upgrade); -- 獲取鎖

// list userlist = query.list();

//-- 釋放鎖

Vim 使用筆記

set hlsearch set nohlsearch 搜尋後清除上次的加亮 nohl nohlsearch 拷貝 很有用的一句話,規定了格式選項,讓它換行不自動空格 set formatoptions tcrqn set fo r set noautoindent 再 shift insert 正...

xemacs使用筆記

xemacs使用筆記 xemacs emacs的下一代,由lucid原創 from debian參考手冊.由於不知道什麼時候刪掉了emacs的乙個重要檔案.每次都沒法安裝好.突然發現了xemacs,於是決定使用看看.本人還是菜鳥,僅供交流 我使用的ubuntu系統,所以就直接apt get inst...

TreeView使用筆記

treeview由節點構成,建樹通過對treeview.items屬性進行操作。items是乙個ttreenodes物件,這是乙個ttreenode集。一 針對ttreenodes,也就是 treeview.items,有這些屬性 1 count,節點個數。2 item index 通過index得...