lazy與fetch
如果fetch為"join",lazy不論設定成什麼樣的值,都不起作用
如果fetch為"select",先載入classes,再載入student,而lazy決定在什麼時候載入student
public
class
fetchtest
extends
hibernateutil}}
/** * *
* select * from student where cid in (select cid from classes )
呼叫了子查詢
但是這種策略,在一定程度上也不能使用,在不包含子查詢的需求內
例如 查詢cid為1 的班級的所有學生,就不能用子查詢了
*/@test
public
void
getallclassesandstudents_subselect()}}
/*** * 在包含子查詢的查詢中,用join 無效,和預設select效果一樣
* 在不包含子查詢的查詢中 ,join能實現優化
* 所有萬能select(效率低),包含子查詢用subselect,不包含用join
* */
@test
public
void
getallclassesandstudents_join()}}
/*** select c from classes left outer join student
on classes0_.cid=students1_.cid
where
classes0_.cid=?
* */
@test
public
void
getallclassesandstudents_join2()
session.close();
}}
hibernate 抓取策略
1.單端 對端是one,即many2one 1.1 在用many2one時,fetch可以採取select或者join.用select時,會另發一條語句載入關聯物件。用join時,用一條語句就查上來,相當於資料庫裡面的連線,內連線外連線取決於外來鍵是否允許為空。注意 這個規則僅適用於get或者loa...
Hibernate抓取策略
抓取策略指的是我們在獲取資料時,告訴hibernate以何種sql的方式去獲取,hibernate有三種抓取方式可供選擇,分別是select join subselect 該屬性只能在集合標籤和關聯關係標籤上使用。xml version 1.0 encoding utf 8 cn.hibernate...
hibernate 抓取策略
抓取策略 fetching strategy 抓取策略 fetching strategy 是指 當應用程式需要在 hibernate實體物件圖的 關聯關係間進行導航的時候,hibernate如何獲取關聯物件的策略。抓取策略可以在o r對映的元資料中宣告,也可以在特定的hql 或條件查詢 crite...