Hhibernate--映射继承关系

hibernate映射继承关系:有三种方式实现
subclass joined_cubclass union_subclass

1. subclass 父类和子类同在一张表,里面加入了辨别者列,通过辨别者列的值来区分,子类对象和父类对象
优点:只操作一个表
缺点:子类的属性,不能设置为非空 。如果子类的属性较多,一个表的字段就非常多
辨别者列只能放在id列后面:例

<id></id>
<discriminator column="TYPE" type="string"></discriminator>
//discriminator-value="student"指定的是子类在辨别者类中的值
<subclass name="Student" discriminator-value="student">
  <property name="school" column="SCHOOL" ></property>
</subclass>

2.joined_subclass 子类和父类,对应两张表,通过外键,实现关系
父类表存父类字段,子类表存子类字段
优点,两个表字段没有多余 没有重复,子类属性,可以为非空
缺点:要操作两个表
例 有个person类,student是其子类

<joined-subclass name="Student" table="STUDENTS">
  <!-- 子类对应得表的外键名称 -->
  <key column="STUDENTID"></key>
  <!-- 子类的其他属性 -->
  <property name="school" column="SCHOOL" type="string"></property>
</joined-subclass>

3.union_subclass 父类和子类,对应两张表 ,父类表存父类字段,子类表存父类和子类字段

优点:子类属性,可以为非空,操作子类单表操作,操作父类 多表操作
缺点:子类对应的类,有很多父类的属性

<union-subclass name="Student" table="STUDENTS">
   <property name="school" column="SCHOOL" type="string"></property>
</union-subclass>

 


转载于:https://www.cnblogs.com/zDr-zHy/p/4918391.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值