パッケージ jakarta.persistence

アノテーションインターフェース ForeignKey


@TargetSE({}) @RetentionSE(RUNTIMESE) public @interface ForeignKey
スキーマ生成が有効な場合の外部キー制約の処理を指定します。このアノテーションが指定されていない場合、デフォルトの外部キー戦略が永続化プロバイダーによって選択されます。

ConstraintMode 値は、外部キー制約を生成するかどうかを指定するために使用されます。

foreignKeyDefinition() 要素で使用される構文は、ターゲットデータベースで外部キー制約の作成に使用される SQL 構文に従う必要があります。例: 次のようになります。

ConstraintMode 値が CONSTRAINT であるが、foreignKeyDefinition() 要素が指定されていない場合、プロバイダーは外部キー制約を生成します。その更新および削除アクションは、外部キーアノテーションが適用される結合列に最も適切であるとプロバイダーが判断します。

導入:
2.1
関連事項:
  • オプション要素の概要

    オプション要素
    修飾子と型
    オプションの要素
    説明
    (オプション)外部キー制約の定義。
    (オプション)外部キー制約の名前。
    (オプション) この外部キーを作成する、生成された DDL に追加される SQL フラグメント。
    (オプション)スキーマ生成が有効なときに外部キー制約を生成するかどうかを指定するために使用されます。
  • 要素の詳細

    • name

      StringSE name
      (オプション)外部キー制約の名前。

      デフォルトはプロバイダーが生成した名前です。

      デフォルト:
      ""
    • value

      (オプション)スキーマ生成が有効なときに外部キー制約を生成するかどうかを指定するために使用されます。
      • ConstraintMode.CONSTRAINT は、永続化プロバイダーが外部キー制約を生成する必要があることを指定します。foreignKeyDefinition() 要素が指定されていない場合、プロバイダーは、外部キーアノテーションが適用される結合列に最も適切であると判断する更新および削除アクションを持つ制約を生成します。
      • ConstraintMode.NO_CONSTRAINT は、制約を生成しないことを指定します。
      • ConstraintMode.PROVIDER_DEFAULT はプロバイダーのデフォルトの動作を選択します。これにより、制約が生成される場合と生成されない場合があります。
      デフォルト:
      CONSTRAINT
    • foreignKeyDefinition

      StringSE foreignKeyDefinition
      (オプション)外部キー制約の定義。
      デフォルト:
      ""
    • options

      StringSE options
      (オプション) この外部キーを作成する、生成された DDL に追加される SQL フラグメント。foreignKeyDefinition() と組み合わせて使用することはできません。
      導入:
      3.2
      デフォルト:
      ""