hibernate抓取策略(單端代理的批量抓取)
保持默認,同fetch="select",如:
<many-to-one name="classes" column="classesid" fetch="select"/>
fetch="select",另外發送一條select語句抓取當前對象關聯實體或集合
設置fetch="join",如:
<many-to-one name="classes" column="classesid" fetch="join"/>
fetch="join",hibernate會通過select語句使用外連接來加載其關聯實體或集合
此時lazy會失效
hibernate抓取策略(集合代理的批量抓取)
保持默認,同fetch="select",如:
<set name="students" inverse="true" cascade="all" fetch="select">
fetch="select",另外發送一條select語句抓取當前對象關聯實體或集合
設置fetch="join",如:
<set name="students" inverse="true" cascade="all" fetch="join">
fetch="join",hibernate會通過select語句使用外連接來加載其關聯實體或集合 此時lazy會失效
設置fetch="subselect",如:
<set name="students" inverse="true" cascade="all" fetch="subselect">
fetch="subselect",另外發送一條select語句抓取在前面查詢到的所有實體對象的關聯集合
hibernate抓取策略,,batch-size在<class>上的應用
batch-size屬性,可以批量加載實體類,參見:Classes.hbm.xml
<class name="Classes" table="t_classes" batch-size="3">
hibernate抓取策略,batch-size在集合上的應用
batch-size屬性,可以批量加載實體類,參見:Classes.hbm.xml
<set name="students" inverse="true" cascade="all" batch-size="5">
hibernate 會下先完發sql,再一次性的大數據