iBATIS也支援延遲載入

2021-08-23 15:05:35 字數 441 閱讀 7194

配置完ibatis的關係後,做單元測試發現關聯的物件並沒有被查詢出來,review了一遍,沒發現有什麼問題,查了一下,發現是延遲載入的問題

ibatis支援延遲載入,可以在sqlmapconfig.xml中配置lazyloadingenabled來設定,預設情況下為true,即預設開啟延遲載入。

使用延遲載入時要求符合一定的規範,如果直接使用連線語句查詢出所有物件的話就不能延遲載入了。

例如:乙個使用者有多個位址,對應表user和address。

select userid from demouser

select userid,address from demoaddress

where userid = #value#

當訪問getuserlist時,查詢出所有使用者,直到使用address時才會去自動執行getaddresslist,獲取address資訊。

Ibatis延遲載入

延遲載入 在執行上篇的例子時,通過觀察期間的日誌輸出順序我們可以發現,在我們執行sqlmap.queryforlist user.getusers 時,實際上ibatis只向資料庫傳送了一條select id,name,from t user sql。而用於獲取address記錄的sql,只有在我們...

ibatis的延遲載入

ibatis也支援延遲載入,可以在sqlmapconfig.xml中配置lazyloadingenabled來設定,預設情況下為true,即預設開啟延遲載入。使用延遲載入時要求符合一定的規範,如果直接使用連線語句查詢出所有物件的話就不能延遲載入了。select userid from demouse...

iBATIS延遲載入的那點事

延遲載入 lazy load 是hibernate3 關聯關係物件預設的載入方式,延遲載入機制是為了避免一些無謂的效能開銷而提出來的,在我們執行 sqlmap.queryforlist 時,實際上 ibatis 只向資料庫傳送了一條 select id,name,from t user sql 而用...