@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 UniqueConstraint[] uniqueConstraints
Defaults to no additional constraints.
public abstract Index[] indexes
public abstract ForeignKey foreignKey
public abstract ForeignKey inverseForeignKey