Hibernate註解詳細解析

2021-07-09 10:47:04 字數 2106 閱讀 7358

1.類級別的註解

@entity         

對映實體類

@table         對映資料庫表

@entity(name="tablename") - 必須,有這個註解表明這個類要對映到資料庫中,註解將乙個類宣告為乙個實體bean。

屬性:name - 可選,對應資料庫中的乙個表。若表名與實體類名相同,則可以省略。

@table(name="",catalog="",schema="")  - 可選,通常和@entity 配合使用,只能標註在實體的 class 定義處,表示實體對應的資料庫表的資訊。

屬性:name - 可選,表示表的名稱,預設地,表名和實體名稱一致,只有在不一致的情況下才需要指定表名

catalog - 可選,表示catalog名稱,預設為 catalog("").

schema - 可選 , 表示 schema 名稱 , 預設為schema("").

2.屬性級別註解

@id     對映生成主鍵

@version    定義樂觀鎖

@column     對映表的列

@transient     定義暫態屬性  

eg:@entity @xmlrootelement

public class user extends baseobject implements serializable

從表:無

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

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

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

public b getb()

從表:無

3.主表a中有乙個從表屬性是b型別的b,同時,從表b中有乙個主表屬性是a型別的a

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

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

public b getb()

public 主表類 get主表類()

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

4.4 多對一關聯

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

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

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

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

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

示例 :

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

// 在 order 類中定義

@manytoone()

@joincolumn(name="user")

public user getuser()

4.5 一對多關聯

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

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

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

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

2.雙向一對多

1)在多方

@manytoone

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

2)在一方

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

4.6 多對多關聯

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

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

1.單向多對多關聯:

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

2.雙向多對多關聯:

hibernate中繼承對映配置詳細解析(四)

本例模仿的是每個子類對映一張表,父類不對應表 2張表 以動物,猴子,貓為例,只須將animal.hbm.xml和animal類檔案簡單修改即可,其他參考檔案請參照我的上篇文章 hibernate中繼承對映配置詳細解析 三 下面是需要改動的檔案 1.animal.hbm.xml abstract tr...

hibernate 註解關係

一對一關聯,分單項和雙向兩種策略來解決邏輯註解 onetoone cascade cascadetype.all private userinfoentity userentity onetoone cascade cascadetype.all 新增級聯操作 private identityent...

hibernate 常用註解

entity table name sys user dynamicinsert和 dynamicupdate生成動態sql語句,即在插入和修改資料的時候,語句中只包括要插入或者修改的字段 cache usage cacheconcurrencystrategy.標籤 有5種可選的快取方案 1,ca...