繼承 單錶繼承 每棵類繼承樹使用乙個表

2021-05-27 08:41:45 字數 554 閱讀 3275

1.單錶繼承:即每棵類繼承樹使用乙個表。

(1)類繼承樹對應多個類,多個類的資訊儲存於一張表中,那麼如何區分某條記錄屬於哪個類?

採用的機制是在表中新增乙個字段,用字段的值來進行區分。

(2)配置檔案如下:

...........

說明如下:

a:父類採用標籤定義

b:在父類中定義乙個discriminator,即指定用於區分欄位的名稱和型別

c:子類使用標籤,name屬性指明子類的路徑,discriminator-value屬性指定用於區分該類欄位的值。

子類的屬性也是用加以標識。

d:與可以平行,但需要指定繼承的名稱,較繁瑣,所以使用包含的形式。

另外:多型查詢:即在hibernate載入資料的時候能夠鑑別出真正的型別。

(1)get方式支援多型查詢,因為get不支援lazy策略,所以不生成**類。

(2)load預設情況下是支援lazy的,所以不支援多型查詢,當lazy設定為false時,才支援多型查詢。

(3)hql支援多型查詢。

每棵繼承樹對映成一張表

每棵繼承樹對映成一張表 1 理解如何對映 因為類繼承樹肯定是對應多個類,要把多個類的資訊存放在一張表中,必須有某種機制來區分哪些記錄是屬於哪個類的。這種機制就是,在表中新增乙個字段,用這個欄位的值來進行區分。用hibernate實現這種策略的時候,有如下步驟 父類用普通的標籤定義 在父類中定義乙個d...

Hibernate教程02 類繼承(單錶繼承)

hibernate教程 02 類繼承 單錶繼承 一 簡介 單錶繼承,每棵類繼承樹使用一張表 所有的類使用乙個表 父類 animal 和子類 pig bird 只生成一張表,該表中包括了父類和子類的所有屬性,因為類繼承樹肯定是對應多個類,要把多個類的資訊存放在一張表中,必須有某種機制來區分哪些記錄是屬...

繼承與多型(一) 使用繼承擴充套件類

enum breed class mammal mammal int newage,int newweight age newage weight newweight mammal int getage void setage int newage int getweight void setwei...