新手上路之Hibernate(5) 繼承對映

2021-06-18 02:02:51 字數 1190 閱讀 2213

之前的幾篇文章主要介紹的是關係對映。之所以用好幾篇的文章來介紹關係對映,其重要性與常用行可見一斑。還有一種對映,也就是今天要介紹的——繼承對映,也是很重要的一種對映模式。

繼承對映的實現有三種策略:

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

2、具體表繼承。每個子類乙個表。

3、類表繼承。每個具體類乙個表。

下面將通過例項來具體說明這三種策略。我們以animal類、pig類、bird類來講解,三者的關係如下圖:

雖然說是三種策略,但是他們都是繼承對映,所以三個實體是不變的:子類(pig、bird)繼承父類(animal),並且具有自己特有的屬性。

animal類:

public class animal
bird類

public class bird extends animal
pig類

public class pig extends animal
最終結果:只生成乙個表,但是有乙個鑑別字段:type

對映配置如下:extends.hbm.xml

最終結果:生成三個表。

每個表中的具體資料:

對應的對映配置:

最終結果:生成兩個表

對映配置:

方式一:表中存在冗餘字段。但是資料操作效率較高(都在同一張表中)。

方式二:層次非常清楚。但是如果繼承層次太多的話,資料操作的效率明顯不如方式一。

方式三:不能使用自增長,只能手動分配主鍵。

因此建議使用方式一。如果繼承的層次很少,可以使用方式二。

github eclipde 新手上路

首先建立github 或碼雲賬號 二者都能使用但是碼雲較快,畢竟國內的。建議1 使用自己姓名命名的獨一無二的賬號,兩邊都使用同乙個名字賬號,然後密碼相同,這樣後期交叉使用的時候可以少很多煩惱。個人經驗教訓,會敲錯賬號。當然,只用其中乙個的忽略。建議2 使用碼雲,二者操作一致。碼雲是中文,入門快,然後...

PHP新手上路

php的許多特點與其他軟體或者工具有關。利用迄今為止我們所學到的php知識,我們可以試著建立乙個簡單互動的 利用這一過程我們又可以學到不少東西。好吧,我們現在開始專注於乙個典型個人 的建設。標題頁面 front.html 這裡我們有乙個非常簡單的html檔案 歡迎來我的寒舍,雖然這裡現在暫時還沒有什...

vue新手上路

1 position absolute relative fixed和static四種定位方式的理解 1 static 靜態的,是position的預設值,所以一般要麼position沒有定義預設這個,要麼定義的時候肯定不寫這個 2 relative 相對的,用相對定位的元素不管它是否進行移動,元素...