@Target(value={})
@Retention(value=RUNTIME)
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
要素が指定されていない場合、
プロバイダは外部キーアノテーションが適用される結合カラムに最も適切に決定される更新アクションと削除アクションを持つ制約を生成します。JoinColumn
,
JoinColumns
,
MapKeyJoinColumn
,
MapKeyJoinColumns
,
PrimaryKeyJoinColumn
,
JoinTable
,
CollectionTable
,
SecondaryTable
,
AssociationOverride
修飾子とタイプ | 任意要素と説明 |
---|---|
java.lang.String |
foreignKeyDefinition
(オプション) 外部キー制約の定義。
|
java.lang.String |
name
(オプション) 外部キー制約の名前。
|
ConstraintMode |
value
(オプション) スキーマの生成が有効なときに外部キー制約を生成するべきかどうかを指定するために使用します。
|
public abstract java.lang.String name
public abstract ConstraintMode value
CONSTRAINT
の値は永続化プロバイダに外部キー制約を生成させます。
foreignKeyDefinition
要素が指定されていない場合、
プロバイダは外部キーアノテーションが適用される結合カラムに最も適切に決定される更新アクションと削除アクションを持つ制約を生成します。
NO_CONSTRAINT
の値は、制約が生成されません。
PROVIDER_DEFAULT
の値は、プロバイダのデフォルトのふるまいになります。
(指定された結合カラムに対して制約が生成される場合もされない場合もあります)
Translated by @megascus.