@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 | 
|---|---|
| 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
    joinColumnselement 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
   inverseJoinColumnselement 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. | 
| String | name(Optional) The name of the join table. | 
| String | schema(Optional) The schema of the table. | 
| UniqueConstraint[] | uniqueConstraints(Optional) Unique constraints that are
 to be placed on the table. | 
public abstract String name
Defaults to the concatenated names of the two associated primary entity tables, separated by an underscore.
public abstract String catalog
Defaults to the default catalog.
public abstract 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
Copyright © 2017. All Rights Reserved.