パッケージ 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
(オプション)関連付けのターゲットにカスケードする必要がある操作。FetchType
fetch
(オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。StringSE
mappedBy
関連を所有するフィールド。boolean
orphanRemoval
(オプション)リレーションシップから削除されたエンティティに削除操作を適用し、それらのエンティティに削除操作をカスケードするかどうか。ClassSE
targetEntity
(オプション)関連付けのターゲットであるエンティティクラス。
要素の詳細
targetEntity
ClassSE targetEntity
(オプション)関連付けのターゲットであるエンティティクラス。コレクションプロパティが Java ジェネリクスを使用して定義されている場合のみオプションです。それ以外の場合は指定する必要があります。ジェネリクスを使用して定義されている場合、デフォルトはコレクションのパラメーター化された型です。
- デフォルト:
- void.class
cascade
CascadeType[] cascade
(オプション)関連付けのターゲットにカスケードする必要がある操作。デフォルトでは、カスケードされる操作はありません。
ターゲットコレクションが
java.util.Map
SE の場合、cascade
要素はマップ値に適用されます。- デフォルト:
- {}
fetch
FetchType fetch
(オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。EAGER 戦略は、関連するエンティティを積極的に取得する必要があるという永続性プロバイダーランタイムの要件です。LAZY 戦略は、永続化プロバイダーランタイムへのヒントです。- デフォルト:
- jakarta.persistence.FetchType.LAZY
mappedBy
StringSE mappedBy
関連を所有するフィールド。関連が単方向でない場合は必須です。- デフォルト:
- ""