アノテーションインターフェース OneToOne
関連が双方向の場合、非所有側は OneToOne
アノテーションの mappedBy()
要素を使用して、所有側の関連フィールドまたはプロパティを指定する必要があります。
OneToOne
関連付けは通常、一意の外部キー関連 (一意の制約を持つ外部キー列または列、または共有主キーを介した関連) をマップします。JoinColumn
アノテーションは、外部キー列をマップするために使用できます。あるいは、オプションの OneToOne
関連付けが、JoinTable
アノテーションを使用して結合テーブルにマップされる場合もあります。
OneToOne
アノテーションは、埋め込み可能クラス内で、埋め込み可能クラスからエンティティクラスへの関連を指定するために使用できます。関連が双方向で、埋め込み可能クラスを含むエンティティが関連の所有側にある場合、非所有側は OneToOne
アノテーションの mappedBy()
要素を使用して、埋め込み可能クラスの関連フィールドまたはプロパティを指定する必要があります。埋め込み属性内の関連属性を示すには、mappedBy()
要素でドット (.
) 表記構文を使用する必要があります。ドット表記で使用される各識別子の値は、それぞれの埋め込みフィールドまたはプロパティの名前です。
例 1: 外部キー列をマップする 1 対 1 の関連付け
例 2: ソースとターゲットの両方が同じ主キー値を共有すると想定する 1 対 1 の関連付け。
例 3: 埋め込み可能なクラスから別のエンティティへの 1 対 1 の関連付け。
- 導入:
- 1.0
オプション要素の概要
オプション要素修飾子と型オプションの要素説明(オプション)関連付けのターゲットにカスケードする必要がある操作。(オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。(オプション)関連を所有するフィールド。boolean
(オプション)関連付けがオプションかどうか。boolean
(オプション)リレーションシップから削除されたエンティティに削除操作を適用し、それらのエンティティに削除操作をカスケードするかどうか。ClassSE<?>
(オプション)関連付けのターゲットであるエンティティクラス。
要素の詳細
targetEntity
ClassSE<?> targetEntity(オプション)関連付けのターゲットであるエンティティクラス。デフォルトでは、関連付けを保存するフィールドまたはプロパティの型になります。
- デフォルト:
- void.class
cascade
CascadeType[] cascade(オプション)関連付けのターゲットにカスケードする必要がある操作。デフォルトでは、操作はカスケードされません。
- デフォルト:
- {}
fetch
FetchType fetch(オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。指定しない場合、デフォルトは
EAGER
になります。- デフォルト:
- EAGER
optional
boolean optional(オプション)関連付けがオプションかどうか。false に設定した場合、null 以外の関連が常に存在する必要があります。- デフォルト:
- true
mappedBy
StringSE mappedBy(オプション)関連を所有するフィールド。この要素は、関連付けの逆(非所有)側でのみ指定されます。- デフォルト:
- ""
orphanRemoval
boolean orphanRemoval(オプション)リレーションシップから削除されたエンティティに削除操作を適用し、それらのエンティティに削除操作をカスケードするかどうか。- 導入:
- 2.0
- デフォルト:
- false