多對多對映

使用多對多對映,以定義存在多對多對應關係的多值關聯。多對多對映具有兩端:擁有端非擁有端。您必須在擁有端中指定結合表格。若為雙向對映,任一端皆可作為擁有端。

  1. 「JPA 結構」視圖中,選取要對映的欄位。

  2. 用滑鼠右鍵按一下欄位,然後選取對映為 > 多對多。這時「JPA 詳細資料」視圖(屬性方面)會顯示所選欄位的內容。

  3. 請利用這份表格來完成 JPA 詳細資料視圖中的一般資訊欄位。

    內容 說明 預設值
    對映實體超鏈結 將這項對映定義為多對多對映

    這個欄位對應至 @ManyToMany 註釋。

    多對多
    目標實體 這個屬性要對映至的實體。 空值

    您不需明確指定目標實體,因為可以從要參照的物件類型來推斷它。

    提取 定義要如何從資料庫載入資料。如需詳細資料,請參閱提取類型
    • 積極

    • 消極

    消極
    對映者 擁有關係的資料庫欄位。
    排序方式 指定查詢在傳回物件時的預設順序。如需詳細資料,請參閱排序方式
    • 不排序

    • 主要索引鍵

    • 自訂

    不排序

  4. 請利用這份表格來完成 JPA 詳細資料視圖之結合表格資訊區域中的欄位。

    內容 說明 預設值
    名稱 內含外部索引鍵直欄的結合表格。 您必須在擁有端中指定結合表格。

    依預設,會將名稱假設為以底線連接之實體的相關聯主要表格。

    結合直欄 選取置換預設值,然後新增、編輯或移除結合直欄。 依預設,會將名稱假設為以底線連接之實體的相關聯主要表格。
    反向結合直欄 選取置換預設值,然後新增、編輯或移除結合直欄。 依預設,會假設對映具有單一結合。

  5. 如果要新增「結合」或「反向結合直欄」,請按一下新增

    如果要編輯現有的「結合」或「反向結合直欄」,請選取欄位,然後按一下編輯

Eclipse 會新增下列註釋至欄位:

@JoinTable(joinColumns=@JoinColumn(name="<JOIN_COLUMN>"), 
    name = "<JOIN_TABLE_NAME>")
@ManyToMany(cascade=CascadeType.<CASCADE_TYPE>, fetch=FetchType.<FETCH_TYPE>,
    targetEntity=<TARGET_ENTITY>, mappedBy = "<MAPPED_BY>")
@OrderBy("<ORDER_BY>")

 

相關作業

對映實體

 

相關參照

「JPA 結構」視圖
「JPA 詳細資料」視圖(屬性方面)

 

相關概念

瞭解 OR 對映
瞭解 EJB 3.0 Java 持續性 API