hibernate抓去策略
所谓抓取策略是指:当应用程序需要在关联关系间进行导航的时候,Hibernate如何获取关联对象的策略。
*fetch="select"是默认设置,会直接发出select语句而不会使用外连接
*fetch="join"会使用外连接加载其关联实体集合
*fetch="subselect":另外发送一条select语句抓取在前面查询到的所有实体对象的关联集合。
示例:
如果加载的是集合:
<set name="students" inverse="true" cascade="all" fetch="subselect">
<key column="classesid"/>
<one-to-many class="Student"/>
</set>
如果加载的是类:
<!-- 设置抓去策略为select ,也就是默认设置-->
<!-- <many-to-one name="classes" column="classesid" fetch="select"/>-->
<!-- 设置抓去策略为join ,Hibernate会使用外连接加载关联对象实体-->
<many-to-one name="classes" column="classesid" fetch="join"/>
hibernate批量抓取,在class上的应用:
<class name="Classes" table="t_classes" batch-size="5">
hibernate批量抓取,在集合上的应用:
<set name="students" inverse="true" cascade="all" batch-size="5">
<!-- 批量取数据 -->
<property name="hibernate.jdbc.fetch_size">50</property>
<!-- 批量更新 -->
<property name="hibernate.jdbc.batch_size">30</property>