ForeignKey
- Implemented Interfaces:
Annotation
The ConstraintMode
value is used to specify whether foreign key constraints should be generated.
The syntax used in the foreignKeyDefinition
element should follow the SQL syntax used by the target database for foreign key constraints. For example, this may be similar the following:
FOREIGN KEY ( <COLUMN expression> {, <COLUMN expression>}... ) REFERENCES <TABLE identifier> [ (<COLUMN expression> {, <COLUMN expression>}... ) ] [ ON UPDATE <referential action> ] [ ON DELETE <referential action> ]When the
ConstraintMode
value is CONSTRAINT
, but the foreignKeyDefinition
element is not specified, the provider will generate foreign key constraints whose update and delete actions it determines most appropriate for the join column(s) to which the foreign key annotation is applied. - See Also:
JoinColumn
JoinColumns
MapKeyJoinColumn
MapKeyJoinColumns
PrimaryKeyJoinColumn
JoinTable
CollectionTable
SecondaryTable
AssociationOverride
- Since:
- JPA 2.1
Public Annotation Attributes
- Since:
- JPA 2.1
- Since:
- JPA 2.1
A value of CONSTRAINT
will cause the persistence provider to generate a foreign key constraint. If the foreignKeyDefinition
element is not specified, the provider will generate a constraint whose update and delete actions it determines most appropriate for the join column(s) to which the foreign key annotation is applied.
A value of NO_CONSTRAINT
will result in no constraint being generated.
A value of PROVIDER_DEFAULT
will result in the provider's default behavior (which may or may not result in the generation of a constraint for the given join column(s).
- Since:
- JPA 2.1