歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Hibernate繼承映射詳解

在面向對象的程序領域中,類與類之間是有繼承關系的,例如Java世界中只需要extends關鍵字就可以確定這兩個類的父子關系,但是在關系數據庫的世界中,表與表之間沒有任何關鍵字可以明確指明這兩張表的父子關系,表與表是沒有繼承關系這樣的說法的。為了將程序領域中的繼承關系反映到數據中,Hibernate為我們提供了3中方案:

第一種方案:一個子類對應一張表。

第二種方案:使用一張表表示所有繼承體系下的類的屬性的並集。

第三種方案:每個子類使用一張表只存儲它特有的屬性,然後與父類所對應的表以一對一主鍵關聯的方式關聯起來。

現在假設有People、Student、Teacher三個類,父類為People,Student與Teacher為People的父類,代碼如下:

People類:

  1. public class People  
  2. {  
  3.     /*父類所擁有的屬性*/  
  4.     private String id;  
  5.     private String name;  
  6.     private String sex;  
  7.     private String age;  
  8.     private Timestamp birthday;  
  9.       
  10.     /*get和set方法*/  
  11. }  

Student類:

  1. public class Student extends People  
  2. {  
  3.     /*學生獨有的屬性*/  
  4.     private String cardId;//學號   
  5.   
  6.     public String getCardId()  
  7.     {  
  8.         return cardId;  
  9.     }  
  10.   
  11.     public void setCardId(String cardId)  
  12.     {  
  13.         this.cardId = cardId;  
  14.     }  
  15. }  

Teacher類:

  1. public class Teacher extends People  
  2. {  
  3.     /*Teacher所獨有的屬性*/  
  4.     private int salary;//工資   
  5.   
  6.     public int getSalary()  
  7.     {  
  8.         return salary;  
  9.     }  
  10.   
  11.     public void setSalary(int salary)  
  12.     {  
  13.         this.salary = salary;  
  14.     }  
  15. }  
Copyright © Linux教程網 All Rights Reserved