實體bean, entity 註解設定

2021-08-22 08:15:08 字數 2495 閱讀 2147

@id - 必須,定義了對映到資料庫表的主鍵的屬性,乙個實體只能有乙個屬性被對映為主  鍵,置於 get***x() 前。

@generatedvalue(strategy=generationtype,generator="") - 可選,用於定義主鍵生成策略。

屬性:strategy - 表示主鍵生成策略,取值有:

generationtype.auto - 根據底層資料庫自動選擇(預設),若資料庫支援自動              增                                       長型別,則為自動增長。

generationtype.indentity - 根據資料庫的identity欄位生成,支援db2、mysql、                                        ms、sql server、sybase與hyperanoicsql資料庫的identity                                          型別主鍵。

generationtype.sequence - 使用sequence來決定主鍵的取值,適合oracle、db2等                                      支援sequence的資料庫,一般結合@sequencegenerator使用。

(oracle沒有自動增長型別,只能用sequence)

generationtype.table  - 使用指定表來決定主鍵取值,結合@tablegenerator使用。

如:@id

@tablegenerator(name="tab_cat_gen",allocationsize=1)

@generatedvalue(strategy=generationtype.table)

hibernate 可以指定 uuid 等主鍵生成方式

@sequencegenerator — 註解宣告了乙個資料庫序列。

屬性:name - 表示該錶主鍵生成策略名稱,它被引用在@generatedvalue中設定的「gernerator」值中。

sequencename - 表示生成策略用到的資料庫序列名稱。

initialvalue - 表示主鍵初始值,預設為0.

allocationsize - 每次主鍵值增加的大小,例如設定成1,則表示每次建立新記錄後自動加1,預設為50.

示例 :

@id

@generatedvalues(strategy=strategytype.sequence)

public int getpk()

從表:無

2.主表a中有乙個從表屬性是b型別的b

主表:@onetoone(cascade = cascadetype.all)

@joincolumn(name="主表外來鍵")   //這裡指定的是資料庫中的外來鍵字段。

public b getb()

注意:@joincolumn是可選的。預設值是從表變數名+"_"+從表的主鍵(注意,這裡加的是主鍵。而不是主鍵對應的變數)。

@manytoone - 表示乙個多對一的對映,該註解標註的屬性通常是資料庫表的外來鍵。

1.單向多對一:多方有一方的引用,一方沒有多方的引用。

在多方@manytoone(targetentity=***x.class)   //指定關聯物件

@joincolumn(name="")                            //指定產生的外來鍵欄位名

2.雙向多對一:配置方式同雙向一對多。

示例 :

// 訂單 order 和使用者 user 是乙個 manytoone 的關係

// 在 order 類中定義

@manytoone()

@joincolumn(name="user")

public user getuser() {

return user;

@onetomany - 描述乙個一對多的關聯,該屬性應該為集合型別,在資料庫中並沒有實際字段。

1.單向一對多:一方有集合屬性,包含多個多方,而多方沒有一方的引用。

@onetomany  缺省會使用連線表做一對多關聯

新增@joincolumn(name="***_id") 後,就會使用外來鍵關聯,而不使用連線表了。

2.雙向一對多

1)在多方

@manytoone

@joincolumn(name="自己的資料庫外來鍵列名")

2)在一方

@joincolumn(name="對方的資料庫外來鍵列名")

@manytomany - 可選,描述乙個多對多的關聯。

屬性:targetentity - 表示多對多關聯的另乙個實體類的全名,例如:package.book.class

1.單向多對多關聯:

在主控方加入@manytomany註解即可。

2.雙向多對多關聯:

JPA實體註解

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

JPA實體註解

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

Hibernate 實體類註解

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