【注】
1. BusinessService类的findAllEmployees() 方法通过Hibernate API从数据库中检索出所有Employee对象。findAllEmployees()方法返回的集合既包括HourlyEmployee类的实例,也包括SalariedEmployee类的实例,这种查询被称为多态查询。
2. 从Company类到Employee类为多态关联,因为Company类的employees集合中可以包含HourlyEmployee类和SalariedEmployee类的实例。从Employee类到Company类不是多态关联,因为Employee类的company属性只会引用Company类本身的实例。
3. 每个具体类对应一个表:
从Company类到Employee类是多态关联,但是由于关系数据模型(和映射文件,自己的理解)没有描述Employee类和它的两个子类的继承关系,因此无法映射Company类的employees集合。
4. 每个类对应一个表:
HOURLY_EMPLOYEES表和SALARIED_EMPLOYEES表的EMPLOYEE_ID字段既作为主键,又作为外键参照EMPLOYEES表。
5. 在<subclass>元素中只能嵌入<subclass>子元素,但不能嵌入<joined-subclass>子元素;而在<joined-subclass>元素中只能嵌入<joined-subclass>子元素,但不能嵌入<subclass>子元素。
6. 有映射一对多多态关联,也有映射多对一多态关联(稍微复杂点)。