2 3 實體繼承

2021-10-08 03:27:35 字數 1766 閱讀 7461

你可以使用實體繼承模式減少**中的重複。

最簡單和最有效的是具體的表繼承。

例如,你有photoquestionpost三個實體:

@entity()

export

class

photo

@entity()

export

class

question

@entity()

export

class

post

正如你所看到的,所有這些實體都有共同的列:idtitledescription

為了減少重複並產生更好的抽象,我們可以為它們建立乙個名為content的基類:

export

abstract

class

content

@entity()

export

class

photo

extends

content

@entity()

export

class

question

extends

content

@entity()

export

class

post

extends

content

來自父實體的所有列(關係,嵌入等)(父級也可以擴充套件其他實體)將在最終實體中繼承和建立。

這個例子將建立3個表 -photo,questionpost.

typeorm還支援單錶繼承。

當您有多個具有自己屬性的類時,單錶繼承是一種模式,但是在資料庫中,它們儲存在同乙個表中。

@entity()

@tableinheritance(}

)export

class

content

@childentity()

export

class

photo

extends

content

@childentity()

export

class

question

extends

content

@childentity()

export

class

post

extends

content

這將建立乙個名為content的表,所有photos,questions和posts的例項都將儲存到此表中。

通過使用embedded columns,可以減少應用程式中的重複(使用組合而不是繼承)。

閱讀有關嵌入實體的更多資訊

spring data jpa實體繼承

spring jpa中我們要將sql對映到物件,尤其是在spring boot這種高度自動化的環境下使用,大量的最優目錄結構與命名規則可以大大降低配置,約定大於配置貫穿其中。例如我們定義查詢dao,繼承jparepository即可。然後返回的物件,我們可以定義model entity table ...

Hibernate 實現繼承實體

在基類中使用如下註解 public class basea implements serializable 子類中使用如下 entity table name example public class childb extends basea 這裡hibernate會將兩個類進行聚合 去建立 新的表...

jpa實體繼承問題

jpa的繼承註解一般有四種 inheritence 此註解應用於根實體類以定義繼承策略。如果沒有使用此注釋定義策略型別,那麼它遵循單錶戰略。discriminatorcolumn 鑑別器屬性將乙個實體與另乙個實體區分開來。因此,該注釋用於提供鑑別器列的名稱。僅需要在根實體類上指定此注釋。discri...