精通Hibernate之映射继承关系(三)

图14-4 继承关系树的根类对应一个表
:EP+wP1J9oa R9vre0 Linux宝库:Q QDol,u8MCompany类和Employee类有相应的映射文件,而HourlyEmployee类和SalariedEmployee类没有相应的映射文件。图14-5显示了持久化类、映射文件和数据库表之间的对应关系。Linux宝库1`~2Ki1E0m6x0Qx
Linux宝库4cy@K"B
Linux宝库^;t9d|&g3BBZ
z+]Sn#~&O0 图14-5 持久化类、映射文件和数据库表之间的对应关系Linux宝库:kgAGL8?R
Linux宝库*S ]PzY|9? `14.2.1 创建映射文件Linux宝库9~b.S Q NR
Linux宝库vI2C"| N;c从Company类到Employee类是多态关联,由于关系数据模型描述了Employee类和它的两个子类的继承关系,因此可以映射Company类的employees集合。例程14-5是Company.hbm.xml文件的代码,该文件不仅映射了Company类的id和name属性,还映射了它的employees集合。
y7w@VTbCm0 Linux宝库$V)mG Cyr例程14-5 Company.hbm.xml
%SH;F.Q2B`!L0y:f#e^+D(p+e$\)p0<hibernate-mapping >Linux宝库2l8`sc})p^#^2h
Linux宝库{dLB'@V8Cg<class name="mypack.Company" table="COMPANIES" >Linux宝库"|mG}0j5e1N+T
<id name="id" type="long" column="ID">
6hp ]+U1gv0<generator class="increment"/>
m2C*SS _0</id>Linux宝库J]g2l;S3N/V
K
<property name="name" type="string" column="NAME" />
4i5io/EiZ0<set
%a
~/`v3E0name="employees"Linux宝库#B*]%M F'f1\!bW
inverse="true"
+T3h&xNm/[5^0lazy="true" >
-_}5M8B'd;b^p0<key column="COMPANY_ID" />Linux宝库 |o+b bw2wn(\ I
<one-to-many class="mypack.Employee" />
a,i&tCIAM$\0</set>