你可以使用實體繼承模式減少**中的重複。
最簡單和最有效的是具體的表繼承。
例如,你有photo
,question
,post
三個實體:
@entity()
export
class
photo
@entity()
export
class
question
@entity()
export
class
post
正如你所看到的,所有這些實體都有共同的列:id
,title
,description
。
為了減少重複並產生更好的抽象,我們可以為它們建立乙個名為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
,question
和post
.
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...