jpa實體註解用例專案位址
參考部落格:
關係的擁有方(即many的一方)負責關係的維護,在擁有方建立外來鍵會用到joincolumn。列舉使用manytoone進行實體註解,如建立乙個分類樹形結構的實體。
/**
* 當前實體中manytoone與onetomany對應的實體都是本身
* @author lx
* */
@entity
@table(name="category")
public class category implements serializable
2:與@jointable結合一起實現表關聯
@target()
public @inte***ce jointable;
joincolumn inversejoincolumns() default {};
uniqueconstraint uniqueconstraints default {};
}name屬性:為連線兩個表的表名稱。若不指定,則使用預設的表名稱,格式如下:「表名1」 + 「_」 + 「表名2」。
joincolumns屬性:在儲存關係的表中,所儲存關聯關係的外來鍵的字段,並配合@joincolumn標記使用。
inversejoincolumns屬性:與joincolumns類似,它儲存的是儲存關係的另外乙個外來鍵字段。
catalog和schema屬性:表示實體指定點目錄名稱或資料庫名稱。
uniqueconstraints屬性:表示該實體所關聯的唯一約束條件,乙個實體可以有多個唯一約束條件,預設沒有約束。
注意:@jointable不僅能夠定義一對多的關聯,也可以定義多對多表的關聯。
列舉通過@jointable建立關聯表,如乙個分組中存在多個使用者,用第三張表group_user來儲存分組使用者關係:
@entity
@table(name="groups")
public class groups implements serializable ,
inversejoincolumns=
) private listuserlist;
}
一般這個物件歸你控制你就可以級聯,不歸你控制你就不要設定級聯。onetomany與onetoone可以使用級聯,manytomany與manytoone一般不使用級聯。
說明:在定義關係時經常會涉及是否定義cascade(級聯處理)屬性,擔心造成負面影響.
·不定義,則對關係表不會產生任何影響
·cascadetype.persist (級聯新建)
·cascadetype.remove (級聯刪除)
·cascadetype.refresh (級聯重新整理)
·cascadetype.merge (級聯更新)中選擇乙個或多個。
·還有乙個選擇是使用cascadetype.all ,表示選擇全部四項
JPA實體註解
entity name entityname 必須,name為可選,對應資料庫中一的個表 table name catalog schema 可選,通常和 entity配合使用,只能標註在實體的class定義處,表示實體對應的資料庫表的資訊 name 可選,表示表的名稱。預設地,表名和實體名稱一致,...
JPA實體類中的常用註解
entity entity標記在類名上面,作為實體類的標識 table 當實體類與其對映的資料庫表名不同名時需要使用 table 標註說明,該標註與 entity 標註並列使用,置於實體類宣告語句之前,可寫於單獨語句行,也可與宣告語句同行。table 標註的常用選項是 name,用於指明資料庫的表名...
JPA註解補充
fetchtype.lazy和 fetchtype.eager 什麼區別?1 fetchtype.lazy 懶載入,載入乙個實體時,定義懶載入的屬性不會馬上從資料庫中載入。2 fetchtype.eager 急載入,載入乙個實體時,定義急載入的屬性會立即從資料庫中載入。3 比方 user 類有兩個屬...