我有以下地图。我的意图是order.BasketId映射到orderItem.BasketId。当我看到sql时,我发现它是映射 order.Id to orderItem.BasketId。如何在我的订单映射中定义要映射到basketId的订单属性。它似乎默认为主键。
<class name="Order" table="Orders">
<id name="Id" type="Int32" column="Order_ID" unsaved-value="0">
<generator class="identity"/>
</id>
<property name="BasketId" column="Basket_ID" type="Int32"/>
<set name="OrderItems" table="item_basket_contents" generic="true" inverse="true" >
<key column="Basket_ID" />
<one-to-many class="EStore.Domain.Model.OrderItem, EStore.Domain"/>
</set>
</class>
和orderItem
<class name="OrderItem" table="Item_Basket_Contents">
<id name="Id" type="Int32" column="ID" unsaved-value="0">
<generator class="identity"/>
</id>
<property name="BasketId" column="Basket_ID" type="Int32"/>
</class>
答案 0 :(得分:8)
使用以下内容:
<key column="Basket_ID" property-ref="BasketId" />
就是这样。
答案 1 :(得分:0)
你能改变结构吗?我会有一个篮子实体,其中包含订单商品。然后您的订单引用此篮子,篮子包含物品。 Order中的显式basketID正在规避hibernate所做的一些ORM。