zoukankan      html  css  js  c++  java
  • 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>


  • 相关阅读:
    机器学习初篇(0.0)
    MQTT 入门介绍
    《八极拳谱》(李书文)
    Golang实战群:日志的处理机制
    【转】火山引擎 Redis 云原生实践
    【转】7000字前端性能优化总结 | 干货建议收藏
    微信小程序canvas绘制圆角边框
    【转】语义化版本 2.0.0
    Verdaccio私有 npm 服务器搭建及其配置
    【转】根据条件配置多个npm仓库
  • 原文地址:https://www.cnblogs.com/zDr-zHy/p/4918391.html
Copyright © 2011-2022 走看看