我有两张桌子,说:
PAYMENT
------------------------------
OrderId INT PK
PaymentId INT PK
Amount FLOAT
ChildPaymentRowNum INT
CARD_PAYMENT
------------------------------
OrderId INT PK
PaymentRowNum INT PK
CardType STRING
CHEQUE_PAYMENT
------------------------------
OrderId INT PK
PaymentRowNum INT PK
CheckNumber INT
不,我没有制作这个数据库,不,我不能改变它。我想映射CARD_PAYMENT
和CHEQUE_PAYMENT
作为. 此模型与我发现的示例的不同之处在于我都使用复合键,并且外表中的列名之一不匹配。joined-subclass
PAYMENT
我认为如果它不是复合键,我可以这样做:
<joined-subclass name="CardPayment" table="CARD_PAYMENT" extends="Payment">
<key column="PaymentRowNum" foreign-key="ChildPaymentRowNum">
</joined-subclass>
如果组合键上的名称匹配,我可以这样做:
<joined-subclass name="CardPayment" table="CARD_PAYMENT" extends="Payment">
<key>
<column="OrderId">
<column="PaymentRowNum">
</key>
</joined-subclass>
但是,虽然我想做这样的事情,但我很确定这是非法的:
<!-- NO GOOD -->
<joined-subclass name="CardPayment" table="CARD_PAYMENT" extends="Payment">
<key>
<column="OrderId" foreign-key="OrderId">
<column="PaymentRowNum" foreign-key="ChildPaymentRowNum">
</key>
</joined-subclass>
那么,我该怎么做这样的事情呢?
奖励积分:如果您能告诉我如何使用NHibernate.Mapping.Attributes
,但如果不是,我可能会弄清楚。