寫在前面:
配置實體類與資料庫的對映關係,有兩種方式:
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 配...