乙個子類一張表
並與主類(父類)共享主表
這種關係中,將父類單獨對映到一張主表,而為子類分別單獨設立一張子表,子表中只包含子類所擴充套件的屬性,同時,子類和父類通過關係型資料庫的外來鍵關聯
<?xml version="1.0" encoding="utf-8"?>
name="hibernate.belle.animal"
table="t_animal" >
name="id">
class="native">
generator>
id>
name="hibernate.belle.bird"
table ="t_bird">
column="bid">
key>
name="height">
property>
joined-subclass>
name="hibernate.belle.pig"
table="t_pig">
column="pid">
key>
name="weight">
property>
joined-subclass>
class>
單錶繼承。所有類共用一張
<?xml version="1.0" encoding="utf-8"?>
name="hibernate.belle.animal"
table="t_animal" >
name="id">
class="native">
generator>
id>
type="string">
discriminator>
name="name">
property>
name="hibernate.belle.bird"
discriminator-value="p">
name="height">
property>
subclass>
name="hibernate.belle.pig"
discriminator-value="b">
name="weight">
property>
subclass>
class>
每個具體類一張表 和join-subclass的區別就是 這裡的子表會加上參照主表的列 而join-subclass只是參照 不會加到自己的表裡面
注意: 這裡的id不能native 因為每個具體類一張表 很有可能pig和bird 的主鍵id相同 所以要用assigned 手動分配id
這裡的父類 animal可以將abstract設為true 表示不生成這個抽象表
<?xml version="1.0" encoding="utf-8"?>
name="hibernate.belle.animal"
table="animal"
abstract="true" >
name="id">
class="assigned">
generator>
id>
name="name">
property>
name="hibernate.belle.bird"
table ="t_bird">
name="height">
property>
union-subclass>
name="hibernate.belle.pig"
table="t_pig">
name="weight">
property>
union-subclass>
class>
C 三種繼承
1 公有 私有 受保護繼承 class b public a class b public a class b protected a 繼承方式 成員型別 public protected private public public protected 無法繼承 protected protecte...
三種繼承方式
派生類繼承了基類的全部資料成員和除了建構函式,析構函式之外的全部資料成員,但是這些成員的訪問屬性在派生的過程中是可以調整的。從基類繼承的成員,其訪問屬性由繼承方式控制。類的公有繼承 當繼承方式為公有繼承時,基類的公有成員和保護成員的訪問屬性在派生類中不變,而基類的私有成員不可直接訪問。類的私有繼承 ...
三種繼承方式
三種繼承方式 公有繼承 私有繼承,保護繼承 不同繼承方式的影響主要體現在 公有繼承 標頭檔案部分 ifndef point h define point h class point void move int offx,int offy int getx const int gety const p...