Hibernate中类的继承使用subclass实现
类与表的关系:
*************
Employee.java
*************
Hibernate生成的sql语句为:
Hibernate: insert into employees (EMPLOYEE_NAME, SELL, type) values (?, ?, 1)
Hibernate: insert into employees (EMPLOYEE_NAME, SKILLER, type) values (?, ?, 2)
Hibernate: insert into employees (EMPLOYEE_NAME, type) values (?, 0)Hibernate:
select
sale0_.EMPLOYEE_ID as EMPLOYEE1_0_0_,
sale0_.EMPLOYEE_NAME as EMPLOYEE3_0_0_,
sale0_.SELL as SELL0_0_
from
employees sale0_
where
sale0_.EMPLOYEE_ID=? and sale0_.type=1
Hibernate:
select
skill0_.EMPLOYEE_ID as EMPLOYEE1_0_0_,
skill0_.EMPLOYEE_NAME as EMPLOYEE3_0_0_,
skill0_.SKILLER as SKILLER0_0_
from
employees skill0_
where
skill0_.EMPLOYEE_ID=? and skill0_.type=2
Hibernate:
select
employee0_.EMPLOYEE_ID as EMPLOYEE1_0_0_,
employee0_.EMPLOYEE_NAME as EMPLOYEE3_0_0_,
employee0_.SELL as SELL0_0_,
employee0_.SKILLER as SKILLER0_0_,
employee0_.type as type0_0_
from
employees employee0_
where
employee0_.EMPLOYEE_ID=?测试结果为:
Sale{id=1, name=sunliusell=300000}
Skill{id=2, name=wangwuskiller=java}
Employee{id=3, name=lisi}
PS:
采用这种方式的好处是数据处理的效率高;缺点是数据库的表结构不符合关系模型的设计理念,而且子类对应的字段不能强制为非空,如果要新增一个子类那么就必须更改表的结构即新增一列。
- 2楼zoulukantian2008前天 17:10
- 学习学习
- 1楼xzf19901108前天 14:45
- 呵呵,我也是刚开始学