JPA 继承概述

2024 年 8 月 29 日 | 阅读 2 分钟

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

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

JPA 继承注解

以下是常用的 JPA 继承注解:-

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

注意 - 如果我们没有传递鉴别器列的名称及其值,则 JPA 默认会考虑它。它将 DTYPE 视为鉴别器列名称,并将实体的名称视为鉴别器值。

JPA 继承策略

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


下一个主题JPA 单表策略