用了<list> 表示你将要额处维护多一个字段的连续性和唯一性,看下面
user.orders
order.user user和order是双向一对多
如果在user.hbm.xml中
<list name="order" cascade="all-delete-orphan" lazy="true" >
<key column ="user_id"/>
<list-index column="order_id " /> <!--这行order_id 是order表的主键的对应字段-->
<one-to-many class="com.xxx.pojo.Order" />
</list>
假若你的order_id 是不连续的,比如user有三个定单,他们的order_id 分别是 2,3, 5 (不连续了),那么user的order的size将会是6!
而将还会包含 3个null元素中user的List<User>中, orders={null,null,order2,order3,null,order5}
如果常非必要用<list> 正常做法是为表增加一个字段,如position字段,并必需维护他的连续性和唯一性。
如:
<list name="order" cascade="all-delete-orphan" lazy="true" >
<key column ="user_id"/>
<list-index column="order_position " />
<one-to-many class="com.jingmaoxuan.pojo.Order" />
</list>
可见,<list>使用蛋痛无比。还是用Set吧
bill
谢谢阅读 祝你好运!