鍍金池/ 教程/ Java/ JPA繼承簡介
JPA JPQL簡介
JPA JPQL批量數(shù)據(jù)操作
JPA JPQL基本操作
JPA多對一映射
JPA標(biāo)準(zhǔn)ORDER BY子句
JPA插入實(shí)體
JPA實(shí)體簡介
JPA列表映射
JPA教程
JPA對象關(guān)系映射
JPA標(biāo)準(zhǔn)WHERE子句
JPA 集合(Set)映射
JPA集合映射
JPA繼承-按類表策略
JPA標(biāo)準(zhǔn)API簡介
JPA創(chuàng)建實(shí)體
JPA標(biāo)準(zhǔn)Having子句
JPA Map映射
JPA更新實(shí)體
JPA查找實(shí)體
JPA JPQL高級操作
JPA簡介
JPA刪除實(shí)體
JPA繼承-連接策略
JPA繼承-單表策略
JPA一對多映射
JPA級聯(lián)操作
JPA一對一映射
JPA級聯(lián)刪除
JPA多對多映射
JPA繼承簡介
JPA標(biāo)準(zhǔn)GROUP BY子句
JPA級聯(lián)持久化
JPA安裝
JPA標(biāo)準(zhǔn)SELECT子句

JPA繼承簡介

繼承是面向?qū)ο缶幊陶Z言的一個關(guān)鍵特性,其中子類可以獲取其父類的屬性。 此功能增強(qiáng)了代碼的可重用性。

關(guān)系數(shù)據(jù)庫不支持繼承機(jī)制。 因此,Java Persistence API(JPA)用于映射關(guān)系數(shù)據(jù)庫模型中的繼承關(guān)鍵特性。

JPA繼承注解

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

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

注 - 如果我們未傳遞鑒別器列的名稱及其值,那么JPA默認(rèn)將其視為默認(rèn)值。 它將DTYPE視為鑒別器列名稱和實(shí)體名稱作為鑒別器值。

JPA繼承策略

JPA提供了三種策略,通過這些策略我們可以在數(shù)據(jù)庫中輕松實(shí)現(xiàn)持久化繼承。

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