第一種方法:使用一張表并且使用一個(gè)字段表明不同的subclass
<discriminator
column="XXXXX"
type="XXXX"/>
表示subclass的不同的地方,
column="XXXXX"為數(shù)據(jù)庫中的區(qū)分column
如:
<discriminator
column="BILLING_DETAILS_TYPE"
type="string"/>
<subclass
name="CreditCard"
discriminator-value="CC">
<property
name="type"
column="CREDIT_CARD_TYPE"/>
...
</subclass>
第二種方法:使用多張表并且使用主外健關(guān)系
<joined-subclass
name="CreditCard"
table="CREDIT_CARD">
<key column="CREDIT_CARD_ID">----------
外健
<property
name="type"
column="TYPE"/>
...
</joined-subclass>
第二種方式由于涉及到外健關(guān)系相聯(lián),在取數(shù)據(jù)的時(shí)候會(huì)對數(shù)據(jù)庫資源的要求很高