1. TUser与TOrder 一对多关系
xml代码
<class name="TUser" table="t_user" catalog="test">
<id name="id" type="java.lang.Long">
<column name="id" />
<generator class="native" />
</id>
<property name="userName" type="java.lang.String">
<column name="user_name" />
</property>
<set name="orders" inverse="true" cascade="all-delete-orphan" fetch="join" lazy="false">
<key column="USER_ID"></key>
<one-to-many class="TOrder"/>
</set>
</class>
<class name="TOrder" table="t_order" catalog="test">
<id name="id" type="java.lang.Long">
<column name="id" />
<generator class="native" />
</id>
<property name="orderName" type="java.lang.String">
<column name="ORDER_NAME" length="20" />
</property>
<many-to-one name="user" class="TUser" >
<column name="USER_ID"></column>
</many-to-one>
</class>
2. 测试
(1) List list = session.createQuery("from TUser").list();
(2) List list = session.createQuery("from TUser where id=3 ").list();
(3) TUser u = (TUser)session.get(TUser.class, new Long(3));
3. 结论:
(1) fetch策略用于定义 get/load一个对象时,如何获取非lazy的对象/集合。
该定义在条件查询中无效。
(2) lazy=true 或false对join fetch没有任何影响, 均会使用左外连接。
Hibernate fetch = join
猜你喜欢
转载自bto310.iteye.com/blog/1613685
今日推荐
周排行