JPA继承简介

继承是面向对象编程语言的一个关键特性,其中子类可以获取其父类的属性。 此功能增强了代码的可重用性。

关系数据库不支持继承机制。 因此,Java Persistence API(JPA)用于映射关系数据库模型中的继承关键特性。

JPA继承注解

以下是最常用的JPA继承注释 -

  • @Inheritence - 此注解应用于根实体类以定义继承策略。 如果没有使用此注释定义策略类型,那么它遵循单表战略。
  • @MappedSuperclass - 此注释应用于由其子类继承的类。 映射的超类不包含任何单独的表。
  • @DiscriminatorColumn - 鉴别器属性将一个实体与另一个实体区分开来。 因此,该注释用于提供鉴别器列的名称。 仅需要在根实体类上指定此注释。
  • @DiscriminatorValue - 此注释用于指定表示特定实体的值的类型。 需要在子实体类中指定此注释。

注 - 如果我们未传递鉴别器列的名称及其值,那么JPA默认将其视为默认值。 它将DTYPE视为鉴别器列名称和实体名称作为鉴别器值。

JPA继承策略

JPA提供了三种策略,通过这些策略我们可以在数据库中轻松实现持久化继承。

  • 单表策略
  • 加入策略
  • 每表每类策略
posted @ 2020-03-25 14:35  borter  阅读(424)  评论(0编辑  收藏  举报