hibernate表结构三种继承关系

来源:互联网 发布:造纸术的影响 知乎 编辑:程序博客网 时间:2024/06/05 21:16

1 每个继承层次一张表

映射语法:
分别为继承层次的各个类定义持久类,其中只有父类包含标识符属性
只有一个以父类命名的映射文件
在映射文件中,必须使用的column属性来定义鉴别字段
在映射文件中,父类的属性直接放在标记对之间,子类的属性必须放在标记对之间
需要在类/子类标记中使用discriminator-value属性指定各个类对应的鉴别字段的值

映射关系
这里写图片描述

2 每个具体类一张表(父类作abstract)

映射语法:
分别为继承层次的各个类定义持久类,其中只有父类包含标识符属性
定义父类为抽象类,每个子类为具体类
父类不映射成表,每个子类映射一张表
只有一个以父类命名的映射文件
将子类属性放在标记对之间

映射关系: ps:主键不可用native或identity方式生成
这里写图片描述

3 每个类一张表

映射语法:
分别为继承层次的各个类定义持久类,其中只有父类包含标识符属性
父类和子类分别映射到不同的表,父类与子类对应的表通过外键关联
只有一个以父类命名的映射文件
子类属性放在映射文件中的标记对之间

映射关系:
这里写图片描述