将整个继承树映射到一张表&将每个类映射到每张表

本文介绍如何使用Hibernate实现Skiller和Sales类继承自Employee类,并通过两种方式映射到数据库:一种是单表继承,另一种是多表映射。单表继承方式简单高效,但可能导致空值较多;多表映射则避免了空值问题。
摘要由CSDN通过智能技术生成
有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初学中,欢迎高手指正、传授经验,不胜感激~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值