パッケージ jakarta.persistence
アノテーション型 ForeignKey
@TargetSE({}) @RetentionSE(RUNTIMESE) public @interface ForeignKey
スキーマ生成が有効な場合の外部キー制約の処理を指定するために使用されます。このアノテーションが指定されていない場合、永続化プロバイダーのデフォルトの外部キー戦略が使用されます。ConstraintMode
値は、外部キー制約を生成する必要があるかどうかを指定するために使用されます。foreignKeyDefinition
要素で使用される構文は、ターゲットデータベースが外部キー制約に使用する SQL 構文に従う必要があります。例: これは次のようになります。FOREIGN KEY ( <COLUMN expression> {, <COLUMN expression>}... ) REFERENCES <TABLE identifier> [ (<COLUMN expression> {, <COLUMN expression>}... ) ] [ ON UPDATE <referential action> ] [ ON DELETE <referential action> ]
ConstraintMode
値がCONSTRAINT
であるが、foreignKeyDefinition
要素が指定されていない場合、プロバイダーは、外部キーアノテーションが適用される結合列に最適であると判断する更新アクションと削除アクションを持つ外部キー制約を生成します。
オプション要素のサマリー
オプション要素 修飾子と型 オプションの要素 説明 StringSE
foreignKeyDefinition
(オプション)外部キー制約の定義。StringSE
name
(オプション)外部キー制約の名前。ConstraintMode
value
(オプション)スキーマ生成が有効なときに外部キー制約を生成するかどうかを指定するために使用されます。
要素の詳細
name
StringSE name
(オプション)外部キー制約の名前。これが指定されていない場合、デフォルトでプロバイダーが生成した名前になります。- デフォルト:
- ""
value
ConstraintMode value
(オプション)スキーマ生成が有効なときに外部キー制約を生成するかどうかを指定するために使用されます。CONSTRAINT
の値は、永続性プロバイダーに外部キー制約を生成させます。foreignKeyDefinition
要素が指定されていない場合、プロバイダーは、外部キーアノテーションが適用される結合列に最適であると判断する更新アクションと削除アクションを持つ制約を生成します。NO_CONSTRAINT
の値を指定すると、制約は生成されません。PROVIDER_DEFAULT
の値は、プロバイダーのデフォルトの動作になります(これにより、特定の結合列の制約が生成される場合と生成されない場合があります。- デフォルト:
- jakarta.persistence.ConstraintMode.CONSTRAINT
foreignKeyDefinition
StringSE foreignKeyDefinition
(オプション)外部キー制約の定義。- デフォルト:
- ""