繼承是物件導向程式設計語言的一個關鍵特性,其中子類可以獲取其父類別的屬性。 此功能增強了程式碼的可重用性。
關聯式資料庫不支援繼承機制。 因此,Java Persistence API(JPA)用於對映關聯式資料庫模型中的繼承關鍵特性。
以下是最常用的JPA繼承注釋 -
@Inheritence
- 此註解應用於根實體類以定義繼承策略。 如果沒有使用此注釋定義策略型別,那麼它遵循單表戰略。@MappedSuperclass
- 此註釋應用於由其子類繼承的類。 對映的超類不包含任何單獨的表。@DiscriminatorColumn
- 鑑別器屬性將一個實體與另一個實體區分開來。 因此,該注釋用於提供鑑別器列的名稱。 僅需要在根實體類上指定此註釋。@DiscriminatorValue
- 此註釋用於指定表示特定實體的值的型別。 需要在子實體類中指定此註釋。註 - 如果我們未傳遞鑑別器列的名稱及其值,那麼JPA預設將其視為預設值。 它將
DTYPE
視為鑑別器列名稱和實體名稱作為鑑別器值。
JPA提供了三種策略,通過這些策略我們可以在資料庫中輕鬆實現持久化繼承。