在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);
|
也可以在单独的映射文件中配置或元素,但此时必须显式设定它们的extends属性。例如可以在单独的HourlyEmployee.hbm.xml文件中映射HourlyEmployee类:
<hibernate-mapping >
<joined-subclass
name="mypack.HourlyEmployee"
table="HOURLY_EMPLOYEES"
extends="mypack.Employee" >
……
</joined-class>
<hibernate-mapping >
|
由于HourlyEmployee类的映射代码不位于Employee.hbm.xml文件中,因此在初始化Hibernate时,不仅需要向Configuration对象中加入Company类和Employee类,还需要加入HourlyEmployee类,并且必须先加入Employee父类,再加入HourlyEmployee子类:
Configuration config = new Configuration();
config.addClass(Company.class)
.addClass(Employee.class)
.addClass(HourlyEmployee.class);
|
如果颠倒加入Employee类和HourlyEmployee子类的顺序,Hibernate在执行addClass()方法时会抛出HibernateMappingException。
<<上一页
1
2
3
4
5
下一页>>
|