hibernate對映繼承關係:有三種方式實現
subclass joined_cubclass union_subclass
1. subclass 父類和子類同在一張表,裡面加入了辨別者列,通過辨別者列的值來區分,子類物件和父類物件
優點:只操作乙個表
缺點:子類的屬性,不能設定為非空 。如果子類的屬性較多,乙個表的字段就非常多
辨別者列只能放在id列後面:例
//discriminator-value="student"指定的是子類在辨別者類中的值
2.joined_subclass 子類和父類,對應兩張表,通過外來鍵,實現關係
父類表存父類字段,子類表存子類字段
優點,兩個表字段沒有多餘 沒有重複,子類屬性,可以為非空
缺點:要操作兩個表
例 有個person類,student是其子類
3.union_subclass 父類和子類,對應兩張表 ,父類表存父類字段,子類表存父類和子類字段
優點:子類屬性,可以為非空,操作子類單錶操作,操作父類 多表操作
缺點:子類對應的類,有很多父類的屬性
例
1 25 繼承對映
三種方法實現表的繼承。1.student和teacher放在乙個表中。2.每個類分別一張表。3.共用屬性乙個表,每個子類一張表。一 第一種實現方式。student的屬性,teacher的屬性放在乙個表中,用乙個字段 fenlei 來區分是學生和老師。person類 entity inheritanc...
Hibernate 繼承對映
繼承對映是將乙個繼承體系對映到資料庫表裡面,繼承實現的三種策略 單錶繼承,每顆類繼承樹使用一張表 一張表 具體表繼承,每個子類一張表 三張表,animal pig bird 類表繼承,每個具體類一張表 兩張表,策略描述 單錶繼承,效率較高,只需查一張表就好,需要新增乙個標記欄位來標記是哪個子類,而且...
hibernate繼承對映
每棵繼承樹對映成一張表 因為類繼承樹肯定是對應多個類,要把多個類的資訊存放在一張表中,必須有某種機制來區分哪些記錄是屬於哪個類的。這種機制就是,在表中新增乙個字段,用這個欄位的值來進行區分。用hibernate實現這種策略的時候,有如下步驟 父類用普通的標籤定義 在父類中定義乙個discrimina...