パッケージ jakarta.persistence

アノテーション型 OneToMany


  • @TargetSE({METHODSE,FIELDSE})
    @RetentionSE(RUNTIMESE)
    public @interface OneToMany
    1 対多の多重度を持つ多値の関連付けを指定します。

    ジェネリクスを使用して要素型を指定するコレクションが定義されている場合、関連するターゲットエンティティ型を指定する必要はありません。それ以外の場合、ターゲットエンティティクラスを指定する必要があります。関連が双方向の場合、 mappedBy 要素を使用して、関連の所有者であるエンティティの関連フィールドまたはプロパティを指定する必要があります。

    OneToMany アノテーションは、エンティティクラスに含まれる埋め込み可能なクラス内で使用して、エンティティのコレクションとの関連を指定できます。関連が双方向の場合、 mappedBy 要素を使用して、関連の所有者であるエンティティの関連フィールドまたはプロパティを指定する必要があります。コレクションが java.util.Map の場合、cascade エレメントと orphanRemoval エレメントがマップ値に適用されます。

    
        Example 1: One-to-Many association using generics
    
        // In Customer class:
    
        @OneToMany(cascade=ALL, mappedBy="customer")
        public Set<Order> getOrders() { return orders; }
    
        In Order class:
    
        @ManyToOne
        @JoinColumn(name="CUST_ID", nullable=false)
        public Customer getCustomer() { return customer; }
    
    
        Example 2: One-to-Many association without using generics
    
        // In Customer class:
    
        @OneToMany(targetEntity=com.acme.Order.class, cascade=ALL,
                    mappedBy="customer")
        public Set getOrders() { return orders; }
    
        // In Order class:
    
        @ManyToOne
        @JoinColumn(name="CUST_ID", nullable=false)
        public Customer getCustomer() { return customer; }
    
    
        Example 3: Unidirectional One-to-Many association using a foreign key mapping
    
        // In Customer class:
    
        @OneToMany(orphanRemoval=true)
        @JoinColumn(name="CUST_ID") // join column is in table for Order
        public Set<Order> getOrders() {return orders;}
        
     
    導入:
    1.0
    • オプション要素のサマリー

      オプション要素  
      修飾子と型 オプションの要素 説明
      CascadeType[]cascade
      (オプション)関連付けのターゲットにカスケードする必要がある操作。
      FetchTypefetch
      (オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。
      StringSEmappedBy
      関連を所有するフィールド。
      booleanorphanRemoval
      (オプション)リレーションシップから削除されたエンティティに削除操作を適用し、それらのエンティティに削除操作をカスケードするかどうか。
      ClassSEtargetEntity
      (オプション)関連付けのターゲットであるエンティティクラス。
    • 要素の詳細

      • targetEntity

        ClassSE targetEntity
        (オプション)関連付けのターゲットであるエンティティクラス。コレクションプロパティが Java ジェネリクスを使用して定義されている場合のみオプションです。それ以外の場合は指定する必要があります。

        ジェネリクスを使用して定義されている場合、デフォルトはコレクションのパラメーター化された型です。

        デフォルト:
        void.class
      • cascade

        CascadeType[] cascade
        (オプション)関連付けのターゲットにカスケードする必要がある操作。

        デフォルトでは、カスケードされる操作はありません。

        ターゲットコレクションが java.util.MapSE の場合、cascade 要素はマップ値に適用されます。

        デフォルト:
        {}
      • fetch

        FetchType fetch
        (オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。EAGER 戦略は、関連するエンティティを積極的に取得する必要があるという永続性プロバイダーランタイムの要件です。LAZY 戦略は、永続化プロバイダーランタイムへのヒントです。
        デフォルト:
        jakarta.persistence.FetchType.LAZY
      • mappedBy

        StringSE mappedBy
        関連を所有するフィールド。関連が単方向でない場合は必須です。
        デフォルト:
        ""
      • orphanRemoval

        boolean orphanRemoval
        (オプション)リレーションシップから削除されたエンティティに削除操作を適用し、それらのエンティティに削除操作をカスケードするかどうか。
        導入:
        2.0
        デフォルト:
        false