第一种方法:使用一张表并且使用一个字段表明不同的subclass
<discriminator
column="XXXXX"
type="XXXX"/>
表示subclass的不同的地方,
column="XXXXX"为数据库中的区分column
如:
<discriminator
column="BILLING_DETAILS_TYPE"
type="string"/>
<subclass
name="CreditCard"
discriminator-value="CC">
<property
name="type"
column="CREDIT_CARD_TYPE"/>
...
</subclass>
第二种方法:使用多张表并且使用主外健关系
<joined-subclass
name="CreditCard"
table="CREDIT_CARD">
<key column="CREDIT_CARD_ID">----------
外健
<property
name="type"
column="TYPE"/>
...
</joined-subclass>
第二种方式由于涉及到外健关系相联,在取数据的时候会对数据库资源的要求很高