歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Hibernate繼承映射詳解

Hibernate繼承映射詳解

日期:2017/3/1 10:22:32   编辑:Linux編程

在面向對象的程序領域中,類與類之間是有繼承關系的,例如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. /*get和set方法*/
  10. }

Student類:

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

Teacher類:

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