1。用LinkedHashSet消除重复元素(如果用了fetch,则hibernate它有这个责任将所用的item都初始化到order的set中去,所以会出现重复的元素)
2。inverse(
---------------------------------------------------------------------------------
order:
<set name="items" cascade="all-delete-orphan" inverse="true">
<key column="orderid" />
<one-to-many class="Item" />
</set>
<key column="orderid" />
<one-to-many class="Item" />
</set>
其中<key column="orderid" />中的orderid是Item中的外键
----------------------------------------------------------------------------------
item:
<many-to-one name="order" column="orderid" not-null="true" foreign-key="fk_item_order"/>
其中column="orderid"中的orderid也是Item中的外键
-----------------------------------------------------------------------------------
由于order和item两端都有外键,所以做操作的时候我们必须说明这个外键
由那一端来维护。
inverse="true"说明外键是有对方来维护,自己不用管。
---------------------------------------------------------------------------------
)
3。all-delete-orphan
转载于:https://blog.51cto.com/fluagen/25666