网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  精通hibernate之映射继承关系四(图)     
  文章作者:未知  文章来源:水木森林  
  查看:73次  录入:管理员--2007-11-17  
 
  这种映射方式只需为继承关系树的employee根类创建一张表employees。如图14-4所示,在employees表中不仅提供和employee类的属性对应的字段,还要提供和它的两个子类的所有属型对应的字段,此外,employees表中需要额外加入一个字符串类型的employee_type字段,用于区分employee的具体类型。
  
 精通hibernate之映射继承关系四(图)(图一)

  
图14-4 继承关系树的根类对应一个表

  
  company类和employee类有相应的映射文件,而hourlyemployee类和salariedemployee类没有相应的映射文件。图14-5显示了持久化类、映射文件和数据库表之间的对应关系。
  
 精通hibernate之映射继承关系四(图)(图二)

  
图14-5 持久化类、映射文件和数据库表之间的对应关系

  
  14.2.1 创建映射文件
  
  从company类到employee类是多态关联,由于关系数据模型描述了employee类和它的两个子类的继承关系,因此可以映射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表,在这个映射文件中,除了需要映射employee类本身的属性,还需要在元素中映射两个子类的属性。例程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表中用于区分employee类型的字段为employee_type,两个元素用于映射hourlyemployee类和salariedemployee类,元素的discriminator-value属性指定employee_type字段的取值。employees表中有以下记录:
  
精通hibernate之映射继承关系四(图)(图三)
 
 
上一篇: 精通hibernate之映射继承关系五    下一篇: 利用hsqldb进行hibernate的单元测试二
  相关文档
选择您需要的java书籍 11-17
细述java技术开发规则--基本篇 11-16
通过e-mail共享java对象 11-17
trustedapplet的制作和运行 11-17
使用midp2.0开发游戏(7)设计scheduler 11-17
一个jsp初学者的学习过程详解 11-17
struts构建文件上传(三) 11-17
java.util.zip创建和读取zip文件的类 11-17
jboss中的安全机制涉及到的几个配置文件 11-17
java入门--对java两个io基础类的理解 02-25
java理论和实践:用软引用阻止内存泄漏 11-16
java的类装载器和命名空间 11-17
j2ee基础篇 对log4j使用方法的简单讲解 11-16
介绍j2me平台的几个重要概念 11-17
jbuilderx+weblogic server 8.1远程调试配置 11-17
漫谈数据库的中庸思想 11-17
川石用java写的留言板原代码 11-17
java数据库基本操作指南 11-17
对使用java socket网络编程的详细讲解 11-16
resin的一些注意事项 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息