麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

精通Hibernate之映射繼承關系二(圖)

2019-11-18 12:56:58
字體:
來源:轉載
供稿:網友

  把每個具體類映射到一張表是最簡單的映射方式。如圖14-2所示,在關系數據模型中只需定義COMPANIES、HOURLY_EMPLOYEES和SALARIED_EMPLOYEES表。為了敘述的方便,下文把HOURLY_EMPLOYEES表簡稱為HE表,把SALARIED_EMPLOYEES表簡稱為SE表。
  
  HourlyEmployee類和HE表對應,HourlyEmployee類本身的rate屬性,以及從Employee類中繼續的id屬性和name屬性,在HE表中都有對應的字段。此外,HourlyEmployee類繼續了Employee類與Company類的關聯關系,與此對應,在HE表中定義了參照COMPANIES表的COMPANY_ID外鍵。
  
  SalariedEmployee類和SE表對應,SalariedEmployee類本身的salary屬性,以及從Employee類中繼續的id屬性和name屬性,在SE表中都有對應的字段。此外,SalariedEmployee類繼續了Employee類與Company類的關聯關系,與此對應,在SE表中定義了參照COMPANIES表的COMPANY_ID外鍵。
  
  Company類、HourlyEmployee類和SalariedEmployee類都有相應的映射文件,而Employee類沒有相應的映射文件。圖14-3顯示了持久化類、映射文件和數據庫表之間的對應關系。
  
 精通Hibernate之映射繼續關系二(圖)(圖一)

  
圖14-2 每個具體類對應一個表

  
精通Hibernate之映射繼續關系二(圖)(圖二)

  
圖14-3 持久化類、映射文件和數據庫表之間的對應關系

  
  假如Employee類不是抽象類,即Employee類本身也能被實例化,那么還需要為Employee類創建對應的EMPLOYEES表,此時HE表和SE表的結構仍然和圖14-2中所示的一樣。這意味著在EMPLOYEES表、HE表和SE表中都定義了相同的NAME字段以及參照COMPANIES表的外鍵COMPANY_ID。另外,還需為Employee類創建單獨的Employee.hbm.xml文件。
  
  14.1.1 創建映射文件
  
  從Company類到Employee類是多態關聯,但是由于關系數據模型沒有描述Employee類和它的兩個子類的繼續關系,因此無法映射Company類的employees集合。例程14-1是Company.hbm.xml文件的代碼,該文件僅僅映射了Company類的id和name屬性。
  
  例程14-1 Company.hbm.xml
  
  <hibernate-mapping >
  <class name="mypack.Company" table="COMPANIES" >
  <id name="id" type="long" column="ID">
  <generator class="increment"/>
  </id>
  
  <property name="name" type="string" column="NAME" />
  
  </class>
  </hibernate-mapping>
  
  HourlyEmployee.hbm.xml文件用于把HourlyEmployee類映射到HE表,在這個映射文件中,除了需要映射HourlyEmployee類本身的rate屬性,還需要映射從Employee類中繼續的name屬性,此外還要映射從Employee類中繼續的與Company類的關聯關系。例程14-2是HourlyEmployee.hbm.xml文件的代碼。
  
  例程14-2 HourlyEmployee.hbm.xml
  
  <hibernate-mapping >
  <class name="mypack.HourlyEmployee" table="HOURLY_EMPLOYEES">
  <id name="id" type="long" column="ID">
  <generator class="increment"/>
  </id>
  
  <property name="name" type="string" column="NAME" />
  <property name="rate" column="RATE" type="double" />
  
  <many-to-one
  name="company"
  column="COMPANY_ID"
  class="mypack.Company"
  />
  </class>
  </hibernate-mapping>
  SalariedEmployee.hbm.xml文件用于把SalariedEmployee類映射到SE表,在這個映射文件中,除了需要映射SalariedEmployee類本身的salary屬性,還需要映射從Employee類中繼續的name屬性,此外還要映射從Employee類中繼續的與Company類的關聯關系。例程14-3是SalariedEmployee.hbm.xml文件的代碼。
  
  例程14-3 SalariedEmployee.hbm.xml

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产高清美女一级毛片久久 | 成人毛片100免费观看 | 久久久国产精品视频 | 久久久久久亚洲综合影院红桃 | 成人在线观看免费视频 | 欧美片a| 成年人网站视频免费 | 国产精品久久久久久久久久大牛 | 狠狠干b| 免费国产网站 | 91精品片| 毛片成人 | 精品国产一区二区三区久久久蜜 | av电影在线网站 | 精品亚洲夜色av98在线观看 | 国产精品一区二区三区99 | 91午夜免费视频 | 一级毛片真人免费播放视频 | 中文字幕一区在线观看视频 | 香蕉国产9 | 午夜在线成人 | 特级毛片a级毛片100免费 | 久久久久久久久浪潮精品 | 国产一区免费 | 美女网站黄在线观看 | 曰韩一二三区 | 久久噜噜噜精品国产亚洲综合 | 免费国产一区 | 毛片大全免费看 | 久久激情小视频 | 国产三级三级三级三级 | 久久不射电影网 | 看a级毛片 | 久久久久久久久成人 | 亚洲一区二区不卡视频 | 欧美成人一级 | 播色网| 久久久精品视频国产 | 黄 色 免费网 站 成 人 | 92看片淫黄大片欧美看国产片 | 国产美女视频一区二区三区 |