Person大类的映射文件配置 1 <hibernate-mapping package="com.zh.hibernate.subclass"> <class name="Person" table="PERSONS" discriminator-value="PERSONS"> <id name="id" type="java.lang.Integer">
<column name="ID" />
<generator class="native" />
</id> <discriminator column="TYPE" type="string"></discriminator> <property name="name" type="java.lang.String">
<column name="NAME" />
</property> <property name="age" type="java.lang.String">
<column name="AGE" />
</property> <subclass name="Student" discriminator-value="STUDENT">
<property name="school" type="string" column="SCHOOL"></property>
</subclass> </class> </hibernate-mapping>
查询语句的区别
Hibernate:
select
person0_.ID as ID1_0_0_,
person0_.NAME as NAME3_0_0_,
person0_.AGE as AGE4_0_0_,
person0_.SCHOOL as SCHOOL5_0_0_,
person0_.TYPE as TYPE2_0_0_
from
PERSONS person0_
where
person0_.ID=?
11, zzqq
Hibernate:
select
student0_.ID as ID1_0_0_,
student0_.NAME as NAME3_0_0_,
student0_.AGE as AGE4_0_0_,
student0_.SCHOOL as SCHOOL5_0_0_
from
PERSONS student0_
where
student0_.ID=?
and student0_.TYPE='STUDENT'