有Skiller和Sales两个类,它们都继承自Employee类。现在要将他们映射到数据库中。
· 分别编写Skiller和Sales两个类继承子Employee类,类中有相应的属性和gets、sets方法
· 编写Employee.hbm.xml文件如下(主要代码)
<hibernate-mapping>
<class name="Employee" discriminator-value="0">
<id name="id">
<generator class = "native" />
</id>
<discriminator column="type" type="int" />
<subclass name="Skiller" discriminator-value="1">
<property name="skill" />
</subclass>
<subclass name="Sales" discriminator-value="2">
<property name="sell" />
</subclass>
</class>
</hibernate-mapping>
这样,在程序里就可以用他们了。当然,将继承树映射到一张表里使得空值太多。不过效率还是蛮高的(相对单独将每一个类映射到一张表里而言)。
下面就是怎样将每个类映射成对应的一张表:
只有改一下Employee.hbm.xml配置文件就ok了,修改后的代码如下
<hibernate-mapping>
<class name="Employee">
<id name="id">
<generator class = "native" />
</id>
<joined-subclass name="Skiller" table="skiller">
<key column="emp_id" />
<property name="skill" />
</joined-subclass>
<joined-subclass name="Sales" table="sales">
<key column="emp_id" />
<property name="sell" />
</joined-subclass>
</class>
</hibernate-mapping>
本人Hibernate初学中,欢迎高手指正、传授经验,不胜感激~