在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