Hibernate 使用註解配置對映關係

2022-03-20 12:12:04 字數 1653 閱讀 9486

寫在前面:

配置實體類與資料庫的對映關係,有兩種方式:

1.使用*.hbm.xml    ;   

2.使用@註解

一:註解的方式:

1.@entity

加在類的前面,將類宣告為持久化類。

2.@table

加在類的前面,為類宣告關聯的表名。如果表名和類名相同,可以省略。

eg:@table(name="tbl_role") 

3.@proxy

加在類的前面,修改類級的引索策略,預設是延遲載入 可以不寫

eg: @proxy(lazy=false)   //改為立即載入

4.@id

加在主鍵的get/set方法前面前面,或者加在屬性前面,補充屬性:

@generatedvalue -主鍵自增策略,

@generatedvalue(strategy=generationtype.auto),預設是auto

一般與@genericgenerator一起使用:

eg:  @genaratedvalue(generator="native_name")

@genericgenerator(name="native_name",strategy="native") //主鍵生成策略為native

注意generator的值跟name中的值一致

如果屬性名和對應的資料庫表列名不同, 或者get/set方法對應的屬性名不是列名, 需要加在get/set方法前面,或者加在屬性前面

eg:@column(name = "rolename")

關聯關係

6.@manytoone--------多對一(外來鍵)關聯關係

eg:@manytoone(targetentity=class_name.class) 

@joincolumn(name="c_name")    //多對一對應的資料庫表中外鍵列名

7.@onetomany --------一對多關聯屬性

8.@manytomany -多對多      

eg:@manytomany(targetentity = function.class)

@jointable(name = "role_function_r", joincolumns = @joincolumn(name = "roleid"),inversejoincolumns=@joincolumn(name="functionid"))

圖中(1)表示多對多關係的中間表的表名,(2)表示中間表與本實體類表的外來鍵關係,(3)表示中間表與另乙個張表的外來鍵關係

===9.@transcient

加在get/set方法前面,或者加在屬性前面,宣告該屬性不需要被持久化

Hibernate註解配置N N關聯

多對多 通過 manytomany 註解定義多對多關係,同時通過 jointable 註解描述關聯表和關聯條件。其中一端定義為 owner,另一段定義為 inverse 對關聯表進行更新操作,這段被忽略 entity public class employer implements serializ...

Hibernate註解對映的使用

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

Hibernate註解方法使用總結

entity 對映實體類 table 對映數句庫表 entity name tablename 必須,註解 將乙個類宣告為乙個實體bean。屬性 name 可選,對應資料庫中的乙個表。若表名與實體類名相同,則可以省略。table name catalog schema 可選,通常和 entity 配...