通过注解@Inheritance配置父类与子类的表关系
属性strategy有三个选项

InheritanceType.SINGLE_TABLE 
InheritanceType.JOINE 
InheritanceType.TABLE_PER_CLASS
  1. InheritanceType.SINGLE_TABLE:单表继承策略,父类、子类的所有字段存放在同一个表中。

  2. InheritanceType.JOINED:多表继承策略,父类、子类分别存放在各自的表中(各自的字段保存在各自的表中)。
    通过标识列来表明是哪一个子类:DiscriminatorColumn(name="type", discriminatorType = DiscriminatorType.STRING, length=30),子类要加上:@DiscriminatorValue("") 。

  3. InheritanceType.TABLE_PER_CLASS:多表继承策略,父类、子类分别存放在各自的表中(子类的表中会有父类的所有字段)。
    子类通过@PrimaryKeyJoinColumn()来表明用那一列来进行和父类的关联. 查询的时候该列为查询主键.


我有切糕
863 声望45 粉丝

Java架构师,技术经理


引用和评论

0 条评论