Hibernate关于父类子类的映射
怕忘记,把栗子贴上来
以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关于父类子类的映射相关推荐
- Hibernate第九篇【组件映射、继承映射】
前言 到目前位置,我们已经学习了一对一.一对多.多对一.多对多映射了-既然Hibernate是ORM实现的框架,它还提供了组件映射和继承映射..本博文主要讲解组件映射和继承映射 Java主要的类主要有 ...
- Hibernate实例--注解配置表映射
本实例使用Hibernate注解的方式实现一个实体类与数据库表持久化操作. 一.Hibernate注解详细介绍 实体Bean,每个持久化POJO类都是一个实体Bean, 通过在类的定义中使用 @Ent ...
- 【转】父类子类指针相互转换问题
1.当自己的类指针指向自己类的对象时,无论调用的是虚函数还是实函数,其调用的都是自己的: 2.当指向父类对象的父类指针被强制转换成子类指针时候,子类指针调用函数时,只有非重写函数是自己的,虚函数是父类 ...
- Hibernate的复合主键映射
1>.学过hibernate的都知道用<id>来配置主键生成策略,显然,它只能配置主键是单列的表,对于联合主键的情况<id>就无能为力了.今天翻到个复合主键映射的资料,觉 ...
- JAVA学习笔记--类型转换(父类子类 Object 基本类型 String) 拆装箱 包装类
最近一段时间忙着学习JAVA,本来net学的也不怎么好,趁着这个机会转下方向学习JAVA.不过.NET core的开源还是有点搞头的,微软了解一下.接下来几天我也会陆续写一些内容关于线程和集合等方面, ...
- Java 父类子类的对象初始化过程
转载自 Java 父类子类的对象初始化过程 摘要: Java基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况. 1. 基本初始化过程: 对于一个简单类的初始化过程是: ...
- java 子类的同名方法_java 父类子类有同名方法时如何调用的实现
父类引用默认调用子类重写的方法 如果父类的引用p指向了子类的实例,则通过这个引用p访问同名方法时,调用的是子类重写的方法. 父类引用p可以指向不同的子类,调用不同子类重写的不同的同名方法,进而达到类间 ...
- hibernate之多对多关联映射
hibernate之多对多关联映射 转载于:https://www.cnblogs.com/liuyang-1037/archive/2009/06/06/1497589.html
- 使用Hibernate注解Annotations进行对象映射的异常处理
通过Hibernate注解Annotations进行对象映射,想在Oracle数据库中自动创建表,代码如下: 实体类: import javax.persistence.Basic; import j ...
最新文章
- python之内置函数(二)与匿名函数、递归函数初识
- 给按钮、静态文本 CListCtrl等添加功能提示(tollTip)功能
- 什么是机房三维(3D)监控系统,什么是机房可视化动力环境监控系统?
- PXE网络引导装机原理介绍
- mysql表引擎修改
- linux下面firefox设置跳转的时候的页面颜色为黑色
- mac使用Shell(终端)SSH连接远程服务器
- 志汇叮咚超级外卖小程序源码6.4.3
- 小记一次考题:生成包含大写字母、小写字母、数字的8位密码
- java spi使用详解
- ubuntu php 关闭警告,ubuntu部署OWASP Mutillidae II php WARING
- RAID阵列及常用RAID
- 万年5W充电头再见!2019新iPhone或将标配18W快充头
- 【深度语义匹配模型】实践篇:语义匹配在贝壳找房智能客服中的应用
- 智学网显示服务器开小差了,小学习语文学习技巧三字口诀,学习语文更容易了!...
- Hadoop fs shell命令汇总
- 解决:WPS文字行末是英文单词时自动换行问题
- 知识管理文档协同不一定要用语雀和石墨,用它效果更好
- kubernetes-StorageClass介绍
- 医疗健康大数据基础知识