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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

精通Hibernate之映射繼承關(guān)系四(圖)

2019-11-18 12:57:06
字體:
供稿:網(wǎng)友

  這種映射方式只需為繼續(xù)關(guān)系樹的Employee根類創(chuàng)建一張表EMPLOYEES。如圖14-4所示,在EMPLOYEES表中不僅提供和Employee類的屬性對(duì)應(yīng)的字段,還要提供和它的兩個(gè)子類的所有屬型對(duì)應(yīng)的字段,此外,EMPLOYEES表中需要額外加入一個(gè)字符串類型的EMPLOYEE_TYPE字段,用于區(qū)分Employee的具體類型。
  
 精通Hibernate之映射繼續(xù)關(guān)系四(圖)(圖一)

  
圖14-4 繼續(xù)關(guān)系樹的根類對(duì)應(yīng)一個(gè)表

  
  Company類和Employee類有相應(yīng)的映射文件,而HourlyEmployee類和SalariedEmployee類沒有相應(yīng)的映射文件。圖14-5顯示了持久化類、映射文件和數(shù)據(jù)庫表之間的對(duì)應(yīng)關(guān)系。
  
 精通Hibernate之映射繼續(xù)關(guān)系四(圖)(圖二)

  
圖14-5 持久化類、映射文件和數(shù)據(jù)庫表之間的對(duì)應(yīng)關(guān)系

  
  14.2.1 創(chuàng)建映射文件
  
  從Company類到Employee類是多態(tài)關(guān)聯(lián),由于關(guān)系數(shù)據(jù)模型描述了Employee類和它的兩個(gè)子類的繼續(xù)關(guān)系,因此可以映射Company類的employees集合。例程14-5是Company.hbm.xml文件的代碼,該文件不僅映射了Company類的id和name屬性,還映射了它的employees集合。
  
  例程14-5 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" />
  <set
  name="employees"
  inverse="true"
  lazy="true" >
  <key column="COMPANY_ID" />
  <one-to-many class="mypack.Employee" />
  </set>
  
  </class>
  </hibernate-mapping>
  
  Employee.hbm.xml文件用于把Employee類映射到EMPLOYEES表,在這個(gè)映射文件中,除了需要映射Employee類本身的屬性,還需要在元素中映射兩個(gè)子類的屬性。例程14-6是Employee.hbm.xml文件的代碼。
  
  例程14-6 Employee.hbm.xml
  
  <hibernate-mapping >
  <class name="mypack.Employee" table="EMPLOYEES">
  <id name="id" type="long" column="ID">
  <generator class="increment"/>
  </id>
  <discriminator column="EMPLOYEE_TYPE" type="string" />
  <property name="name" type="string" column="NAME" />
  
  <many-to-one
  name="company"
  column="COMPANY_ID"
  class="mypack.Company"
  />
  
  <subclass name="mypack.HourlyEmployee" discriminator-value="HE" >
  <property name="rate" column="RATE" type="double" />
  </subclass>
  
  <subclass name="mypack.SalariedEmployee" discriminator-value="SE" >
  <property name="salary" column="SALARY" type="double" />
  </subclass>
  
  </class>
  
  </hibernate-mapping>
  
  在Employee.hbm.xml文件中,元素指定EMPLOYEES表中用于區(qū)分Employee類型的字段為EMPLOYEE_TYPE,兩個(gè)元素用于映射HourlyEmployee類和SalariedEmployee類,元素的discriminator-value屬性指定EMPLOYEE_TYPE字段的取值。EMPLOYEES表中有以下記錄:
  
精通Hibernate之映射繼續(xù)關(guān)系四(圖)(圖三)


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产手机av在线 | 日韩高清电影 | 精品国产一区二区三区四区在线 | 日韩黄色一级视频 | 狠狠撸电影 | 污污黄 | 国产精品自拍片 | 91网站免费观看 | 国产精品视频久 | 中文字幕在线观看视频一区 | av在线一区二区三区四区 | 日韩视频1 | 在线看毛片的网站 | 九九热免费在线观看 | 一级黄色在线观看 | 黄色av网站在线观看 | 亚洲人成中文字幕在线观看 | 日韩美香港a一级毛片免费 欧美一级淫片007 | 免费在线看黄 | 日韩精品无码一区二区三区 | 免费黄色小视频网站 | 日韩理论电影网 | 精品国产乱码久久久久久丨区2区 | 国产美女视频黄a视频免费 日韩黄色在线播放 | 久久久国产一级片 | 日本a大片 | 国产午夜精品一区 | 亚洲性综合网 | 国产一级做a爱片在线看免 2019天天干夜夜操 | 最新一区二区三区 | 牛牛视频在线 | 免费a视频在线观看 | 成人一级片毛片 | 国产一区二区三区四区五区在线 | 在线播放免费视频 | 亚洲电影在线播放 | 粉嫩粉嫩一区二区三区在线播放 | 久久精品毛片 | 亚洲一区免费观看 | 亚洲最大的成人网 | 午夜视频在线免费观看 |