怕忘记,把栗子贴上来

以Person类和Student类为例

public class Person
{private Integer id;private String name;private int age;//省略setter、getter代码
}

public class Student extends Person
{private String school;//省略setter、getter代码
}

第一种方式:只有一张表的

直接贴映射文件内容

<hibernate-mapping package="com.zcd.exercise.subclass"><class name="Person" table="PERSONS" discriminator-value="PERSON"><id name="id" type="java.lang.Integer"><column name="ID" /><generator class="native" /></id><discriminator type="string"><column name="TYPE"></column></discriminator><property name="name" type="java.lang.String"><column name="NAME" /></property><property name="age" type="int"><column name="AGE" /></property><subclass name="Student" discriminator-value="STUDENT"><property name="school" type="string" column="SCHOOL"></property></subclass></class>
</hibernate-mapping>

第二种方式:分两张表存储

<hibernate-mapping package="com.zcd.exercise.unionSubclass"><class name="Person" table="PERSONS"><id name="id" type="java.lang.Integer"><column name="ID" /><generator class="hilo" /></id><property name="name" type="java.lang.String"><column name="NAME" /></property><property name="age" type="int"><column name="AGE" /></property><union-subclass name="Student" table="STUDENTS"><property name="school" type="string"><column name="SCHOOL"></column></property></union-subclass></class>
</hibernate-mapping>

第三种方式:也是分两张表但是会把子类特有的属性单独存放在一张表,也就是相当于把一条记录拆开放在两张表中。

<hibernate-mapping package="com.zcd.exercise.joinedSubclass"><class name="Person" table="PERSONS"><id name="id" type="java.lang.Integer"><column name="ID" /><generator class="native" /></id><property name="name" type="java.lang.String"><column name="NAME" /></property><property name="age" type="int"><column name="AGE" /></property><joined-subclass name="Student" table="STUDENTS"><key column="STUDENT_ID"></key><property name="school" type="string" column="SCHOOL"></property></joined-subclass></class>
</hibernate-mapping>

转载于:https://www.cnblogs.com/GooPolaris/p/7920024.html

Hibernate关于父类子类的映射相关推荐

  1. Hibernate第九篇【组件映射、继承映射】

    前言 到目前位置,我们已经学习了一对一.一对多.多对一.多对多映射了-既然Hibernate是ORM实现的框架,它还提供了组件映射和继承映射..本博文主要讲解组件映射和继承映射 Java主要的类主要有 ...

  2. Hibernate实例--注解配置表映射

    本实例使用Hibernate注解的方式实现一个实体类与数据库表持久化操作. 一.Hibernate注解详细介绍 实体Bean,每个持久化POJO类都是一个实体Bean, 通过在类的定义中使用 @Ent ...

  3. 【转】父类子类指针相互转换问题

    1.当自己的类指针指向自己类的对象时,无论调用的是虚函数还是实函数,其调用的都是自己的: 2.当指向父类对象的父类指针被强制转换成子类指针时候,子类指针调用函数时,只有非重写函数是自己的,虚函数是父类 ...

  4. Hibernate的复合主键映射

    1>.学过hibernate的都知道用<id>来配置主键生成策略,显然,它只能配置主键是单列的表,对于联合主键的情况<id>就无能为力了.今天翻到个复合主键映射的资料,觉 ...

  5. JAVA学习笔记--类型转换(父类子类 Object 基本类型 String) 拆装箱 包装类

    最近一段时间忙着学习JAVA,本来net学的也不怎么好,趁着这个机会转下方向学习JAVA.不过.NET core的开源还是有点搞头的,微软了解一下.接下来几天我也会陆续写一些内容关于线程和集合等方面, ...

  6. Java 父类子类的对象初始化过程

    转载自 Java 父类子类的对象初始化过程 摘要: Java基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况. 1. 基本初始化过程: 对于一个简单类的初始化过程是: ...

  7. java 子类的同名方法_java 父类子类有同名方法时如何调用的实现

    父类引用默认调用子类重写的方法 如果父类的引用p指向了子类的实例,则通过这个引用p访问同名方法时,调用的是子类重写的方法. 父类引用p可以指向不同的子类,调用不同子类重写的不同的同名方法,进而达到类间 ...

  8. hibernate之多对多关联映射

    hibernate之多对多关联映射 转载于:https://www.cnblogs.com/liuyang-1037/archive/2009/06/06/1497589.html

  9. 使用Hibernate注解Annotations进行对象映射的异常处理

    通过Hibernate注解Annotations进行对象映射,想在Oracle数据库中自动创建表,代码如下: 实体类: import javax.persistence.Basic; import j ...

最新文章

  1. python之内置函数(二)与匿名函数、递归函数初识
  2. 给按钮、静态文本 CListCtrl等添加功能提示(tollTip)功能
  3. 什么是机房三维(3D)监控系统,什么是机房可视化动力环境监控系统?
  4. PXE网络引导装机原理介绍
  5. mysql表引擎修改
  6. linux下面firefox设置跳转的时候的页面颜色为黑色
  7. mac使用Shell(终端)SSH连接远程服务器
  8. 志汇叮咚超级外卖小程序源码6.4.3
  9. 小记一次考题:生成包含大写字母、小写字母、数字的8位密码
  10. java spi使用详解
  11. ubuntu php 关闭警告,ubuntu部署OWASP Mutillidae II php WARING
  12. RAID阵列及常用RAID
  13. 万年5W充电头再见!2019新iPhone或将标配18W快充头
  14. 【深度语义匹配模型】实践篇:语义匹配在贝壳找房智能客服中的应用
  15. 智学网显示服务器开小差了,小学习语文学习技巧三字口诀,学习语文更容易了!...
  16. Hadoop fs shell命令汇总
  17. 解决:WPS文字行末是英文单词时自动换行问题
  18. 知识管理文档协同不一定要用语雀和石墨,用它效果更好
  19. kubernetes-StorageClass介绍
  20. 医疗健康大数据基础知识

热门文章

  1. css(float浮动和clear清除)
  2. 支付和清算就是信息流和资金流
  3. Nginx基础知识之————日志管理
  4. Kenshin Cui's Blog
  5. Facebook 上一位大佬发表的代码看法
  6. 用docker安装mysql5-6,并远程连接
  7. 【转载】Instagram架构分析笔记
  8. php中的session机制
  9. sql语句中动态变量中间含有单引号
  10. OCR的备份与恢复方法