@Target(value={METHOD,FIELD})
@Retention(value=RUNTIME)
public @interface JoinTable
A join table is typically used in the mapping of many-to-many and unidirectional one-to-many associations. It may also be used to map bidirectional many-to-one/one-to-many associations, unidirectional many-to-one relationships, and one-to-one associations (both bidirectional and unidirectional).
When a join table is used in mapping a relationship with an embeddable class on the owning side of the relationship, the containing entity rather than the embeddable class is considered the owner of the relationship.
If the JoinTable
annotation is missing, the
default values of the annotation elements apply.
The name of the join table is assumed to be the table names of the
associated primary tables concatenated together (owning side
first) using an underscore.
Example: @JoinTable( name="CUST_PHONE", joinColumns= @JoinColumn(name="CUST_ID", referencedColumnName="ID"), inverseJoinColumns= @JoinColumn(name="PHONE_ID", referencedColumnName="ID") )
JoinColumn
,
JoinColumns
Modifier and Type | Optional Element and Description |
---|---|
java.lang.String |
catalog
(Optional) The catalog of the table.
|
ForeignKey |
foreignKey
(Optional) Used to specify or control the generation of a
foreign key constraint for the columns corresponding to the
joinColumns element when table generation is in
effect. |
Index[] |
indexes
(Optional) Indexes for the table.
|
ForeignKey |
inverseForeignKey
(Optional) Used to specify or control the generation of a
foreign key constraint for the columns corresponding to the
inverseJoinColumns element when table generation
is in effect. |
JoinColumn[] |
inverseJoinColumns
(Optional) The foreign key columns
of the join table which reference the
primary table of the entity that does
not own the association.
|
JoinColumn[] |
joinColumns
(Optional) The foreign key columns
of the join table which reference the
primary table of the entity owning the
association.
|
java.lang.String |
name
(Optional) The name of the join table.
|
java.lang.String |
schema
(Optional) The schema of the table.
|
UniqueConstraint[] |
uniqueConstraints
(Optional) Unique constraints that are
to be placed on the table.
|
public abstract java.lang.String name
Defaults to the concatenated names of the two associated primary entity tables, separated by an underscore.
public abstract java.lang.String catalog
Defaults to the default catalog.
public abstract java.lang.String schema
Defaults to the default schema for user.
public abstract JoinColumn[] joinColumns
Uses the same defaults as for JoinColumn
.
public abstract JoinColumn[] inverseJoinColumns
Uses the same defaults as for JoinColumn
.
public abstract ForeignKey foreignKey
joinColumns
element when table generation is in
effect. If both this element and the foreignKey
element of any of the joinColumns
elements are
specified, the behavior is undefined. If no foreign key
annotation element is specified in either location, the
persistence provider's default foreign key strategy will
apply.public abstract ForeignKey inverseForeignKey
inverseJoinColumns
element when table generation
is in effect. If both this element and the
foreignKey
element of any of the
inverseJoinColumns
elements are specified, the
behavior is undefined. If no foreign key annotation element
is specified in either location, the persistence provider's
default foreign key strategy will apply.public abstract UniqueConstraint[] uniqueConstraints
Defaults to no additional constraints.
public abstract Index[] indexes