a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 115|回复: 0

[专业语言] JAVA认证:教你精通Hibernate之映射继续关系(2)

[复制链接]
发表于 2012-8-4 12:44:44 | 显示全部楼层 |阅读模式
把每个具体类映射到一张表是最简单的映射体例。如图14-2所示,在关系数据模子中只需界说COMPANIES、HOURLY_EMPLOYEES和SALARIED_EMPLOYEES表。为了论说的便利,下文把HOURLY_EMPLOYEES表简称为HE表,把SALARIED_EMPLOYEES表简称为SE表。
4 R% @) M9 [( l  HourlyEmployee类和HE表对应,HourlyEmployee类自己的rate属性,以及年夜Employee类中继续的id属性和name属性,在HE表中都有对应的字段。此外,HourlyEmployee类继续了Employee类与Company类的联系关系关系,与此对应,在HE表中界说了参照COMPANIES表的COMPANY_ID外键。- d  ^: {2 v9 h
  SalariedEmployee类和SE表对应,SalariedEmployee类自己的salary属性,以及年夜Employee类中继续的id属性和name属性,在SE表中都有对应的字段。此外,SalariedEmployee类继续了Employee类与Company类的联系关系关系,与此对应,在SE表中界说了参照COMPANIES表的COMPANY_ID外键。. G1 R) R/ A9 i: O9 h: e# y
  Company类、HourlyEmployee类和SalariedEmployee类都有响应的映射文件,而Employee类没有响应的映射文件。图14-3显示了持久化类、映射文件和数据库表之间的对应关系。
+ z3 n0 ]5 Q8 o3 s7 {! d% t  假如Employee类不是抽象类,即Employee类自己也能被实例化,那么还需要为Employee类建树对应的EMPLOYEES表,此时HE表和SE表的结构仍然和图14-2中所示的一样。这意味着在EMPLOYEES表、HE表和SE表中都界说了不异的NAME字段以及参照COMPANIES表的外键COMPANY_ID.此外,还需为Employee类建树零丁的Employee.hbm.xml文件。
, p  r+ t$ T6 ]  14.1.1 建树映射文件
$ O0 j! j  \+ f) C  年夜Company类到Employee类是多态联系关系,可是因为关系数据耐庞慊有描述Employee类和它的两个子类的继续关系,是以无法映射Company类的employees集结。例程14-1是Company.hbm.xml文件的代码,该文件仅仅映射了Company类的id和name属性。
  j7 {! _: g  ~1 Y- Q6 K- a/ M& {  例程14-1 Company.hbm.xml  n" E# f. e( F0 N1 |+ F
  HourlyEmployee.hbm.xml文件用于把HourlyEmployee类映射到HE表,在这个映射文件中,除了需要映射HourlyEmployee类自己的rate属性,还需要映射年夜Employee类中继续的name属性,此外还要映射年夜Employee类中继续的与Company类的联系关系关系。例程14-2是HourlyEmployee.hbm.xml文件的代码。( N6 L9 p6 z/ x2 H9 g2 U2 _
  例程14-2 HourlyEmployee.hbm.xml6 q# M' D$ K8 M" K& ]
  SalariedEmployee.hbm.xml文件用于把SalariedEmployee类映射到SE表,在这个映射文件中,除了需要映射SalariedEmployee类自己的salary属性,还需要映射年夜Employee类中继续的name属性,此外还要映射年夜Employee类中继续的与Company类的联系关系关系。例程14-3是SalariedEmployee.hbm.xml文件的代码。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-4-29 18:56 , Processed in 0.163771 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表