パッケージ 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 要素が指定されていない場合、プロバイダーは、外部キーアノテーションが適用される結合列に最適であると判断する更新アクションと削除アクションを持つ外部キー制約を生成します。
    導入:
    2.1
    関連事項:
    JoinColumn, JoinColumns, MapKeyJoinColumn, MapKeyJoinColumns, PrimaryKeyJoinColumn, JoinTable, CollectionTable, SecondaryTable, AssociationOverride
    • オプション要素のサマリー

      オプション要素  
      修飾子と型 オプションの要素 説明
      StringSEforeignKeyDefinition
      (オプション)外部キー制約の定義。
      StringSEname
      (オプション)外部キー制約の名前。
      ConstraintModevalue
      (オプション)スキーマ生成が有効なときに外部キー制約を生成するかどうかを指定するために使用されます。
    • 要素の詳細

      • name

        StringSE name
        (オプション)外部キー制約の名前。これが指定されていない場合、デフォルトでプロバイダーが生成した名前になります。
        デフォルト:
        ""
      • value

        ConstraintMode value
        (オプション)スキーマ生成が有効なときに外部キー制約を生成するかどうかを指定するために使用されます。

        CONSTRAINT の値は、永続性プロバイダーに外部キー制約を生成させます。foreignKeyDefinition 要素が指定されていない場合、プロバイダーは、外部キーアノテーションが適用される結合列に最適であると判断する更新アクションと削除アクションを持つ制約を生成します。

        NO_CONSTRAINT の値を指定すると、制約は生成されません。

        PROVIDER_DEFAULT の値は、プロバイダーのデフォルトの動作になります(これにより、特定の結合列の制約が生成される場合と生成されない場合があります。

        デフォルト:
        jakarta.persistence.ConstraintMode.CONSTRAINT
      • foreignKeyDefinition

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