JPA繼承簡介

繼承是面向對象編程語言的一個關鍵特性,其中子類可以獲取其父類的屬性。 此功能增強了代碼的可重用性。

關係資料庫不支持繼承機制。 因此,Java Persistence API(JPA)用於映射關係資料庫模型中的繼承關鍵特性。

JPA繼承注解

以下是最常用的JPA繼承注釋 -

  • @Inheritence - 此注解應用於根實體類以定義繼承策略。 如果沒有使用此注釋定義策略類型,那麼它遵循單表戰略。
  • @MappedSuperclass - 此注釋應用於由其子類繼承的類。 映射的超類不包含任何單獨的表。
  • @DiscriminatorColumn - 鑒別器屬性將一個實體與另一個實體區分開來。 因此,該注釋用於提供鑒別器列的名稱。 僅需要在根實體類上指定此注釋。
  • @DiscriminatorValue - 此注釋用於指定表示特定實體的值的類型。 需要在子實體類中指定此注釋。

注 - 如果我們未傳遞鑒別器列的名稱及其值,那麼JPA默認將其視為默認值。 它將DTYPE視為鑒別器列名稱和實體名稱作為鑒別器值。

JPA繼承策略

JPA提供了三種策略,通過這些策略我們可以在資料庫中輕鬆實現持久化繼承。

  • 單表策略
  • 加入策略
  • 每表每類策略

上一篇: JPA標準Having子句 下一篇: JPA繼承-單表策略