@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.