Chinaunix首页 | 论坛 | 博客
  • 博客访问: 782980
  • 博文数量: 738
  • 博客积分: 7000
  • 博客等级: 少将
  • 技术积分: 5000
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-12 09:00
文章分类

全部博文(738)

文章存档

2011年(1)

2008年(737)

我的朋友

分类:

2008-09-12 09:01:28

  在这种映射方式下,继承关系树的每个类以及接口都对应一个表。在本例中,需要创建EMPLOYEES、HE和SE表。

  如图14-6所示,EMPLOYEES表仅包含和Employee类的属性对应的字段,HE表仅包含和HourlyEmployee类的属性对应的字段,SE表仅包含和SalariedEmployee类的属性对应的字段。此外,HE表和SE表都以EMPLOYEE_ID字段作为主键,该字段还同时作为外键参照EMPLOYEES表。

  图14-6 继承关系树的每个类对应一个表

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

  从Company类到Employee类是多态关联,由于关系数据模型描述了Employee类和它的两个子类的继承关系,因此可以映射Company类的employees集合。例程14-7是Company.hbm.xml文件的代码,该文件不仅映射了Company类的id和name属性,还映射了它的employees集合。

  例程14-7 Company.hbm.xml


    
    
      
    

    
    
     
     
        

     
     

  Employee.hbm.xml文件用于把Employee类映射到EMPLOYEES表,在这个映射文件中,除了需要映射Employee类本身的属性,还需要在 元素中映射两个子类的属性。例程14-8是Employee.hbm.xml文件的代码。

  例程14-8 Employee.hbm.xml



     
     
     
     

     

              name="company"
        column="COMPANY_ID"
        class="mypack.Company"
      />

     
     
     
     


     
     
     
     

    
     

     

  在Employee.hbm.xml文件中,两个元素用于映射HourlyEmployee类和SalariedEmployee类,元素的子元素指定HE表和SE表中既作为主键又作为外键的EMPLOYEE_ID字段。

  由于HourlyEmployee类和SalariedEmployee类没有单独的映射文件,因此在初始化Hibernate时,只需向Configuration对象中加入Company类和Employee类:

  Configuration config = new Configuration();

  config.addClass(Company.class)

  。addClass(Employee.class);

[1]  

【责编:John】

--------------------next---------------------

阅读(416) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~