Hibernate的學習總結(映射類之間的繼承關係)

在Hibernate中,POJO實體類也可以有繼承關係。

第一種繼承關係爲:

Table per concrete class 表與子類獨立的一對一關係。

數據庫中有3張表,商品表,書本表,影碟表。其中3個表對應3個實體類。3張表沒有主外鍵關係,都有各自的主鍵,這樣每個實體都有各自獨立的hbm文件。因爲商品表與書本表和影碟表有相同的字段,所以可以設計書本類和影碟類都繼承商品類。

這種繼承關係比較少見,因爲數據庫表很少這樣設計,也欠缺靈活性。

 

第二種繼承關係爲:

Table per subclass 每個子類與父類都對應一張表,但是子類與父類之間有共享的字段,表之間有主外鍵關係。子表的主鍵參照父表的主鍵。

與第一種關係的不同地方在於3個實體類只需要使用一個hbm文件。

TItem.java

 

 

TBook.java

 

TDVD.java

 

 

Titem.hbm.xml

  

 

 

第三種繼承關係爲:

Table per class hierarchy

子類和父類對應一張表。

數據庫中實際只存在一張表,表中有類別字段用於區分不同的商品。將每一個類別映射爲每個子類實體。

該種關係的POJO類定義與第二種無異,主要區別在於hbm文件

Titem.hbm.xml

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章