jpa實體繼承問題

2021-09-02 22:36:07 字數 685 閱讀 6088

jpa的繼承註解一般有四種--

@inheritence 此註解應用於根實體類以定義繼承策略。 如果沒有使用此注釋定義策略型別,那麼它遵循單錶戰略。

@discriminatorcolumn  鑑別器屬性將乙個實體與另乙個實體區分開來。 因此,該注釋用於提供鑑別器列的名稱。 僅需要在根實體類上指定此注釋。

@discriminatorvalue 此注釋用於指定表示特定實體的值的型別。 需要在子實體類中指定此注釋。

單錶策略:

@inheritance(strategy=inheritancetype.single_table)
查詢父類關聯的表 在查詢父類的時候 所有子類表中字段全部查詢出來

連線策略:

@inheritance(strategy=inheritancetype.joined)
在連線策略中,為每個實體類生成乙個單獨的表。 每個表的屬性都與主鍵連線。 它消除了字段字重複的可能性。但是父類中除了主鍵的的其他字段 並不會在子表中查詢出來

按類表策略:

@inheritance(strategy=inheritancetype.table_per_class)
在按類表策略中,為每個子實體類生成乙個單獨的表。 與連線策略不同,在按類表策略中不會為父實體類生成單獨的表

JPA實體註解

entity name entityname 必須,name為可選,對應資料庫中一的個表 table name catalog schema 可選,通常和 entity配合使用,只能標註在實體的class定義處,表示實體對應的資料庫表的資訊 name 可選,表示表的名稱。預設地,表名和實體名稱一致,...

JPA實體註解

jpa實體註解用例專案位址 參考部落格 關係的擁有方 即many的一方 負責關係的維護,在擁有方建立外來鍵會用到joincolumn。列舉使用manytoone進行實體註解,如建立乙個分類樹形結構的實體。當前實體中manytoone與onetomany對應的實體都是本身 author lx enti...

JPA實體關聯 hibernate實現

一對一關係對映分為單向一對一和多向一對一。在配置關係時必須確立控制方和被控制方。單向和雙向的區別為看主控方和被控方兩邊是否都配置了 onetoone,如果都有為雙向一對一,反之為單向。雙向一對一關聯有兩條規則 person屬於關係維護方 entity table name t one person ...