This annotation specifies a primary key column that is used
as a foreign key to join to another table.
It is used to join the primary table of an entity subclass
in the {@link InheritanceType#JOINED JOINED} mapping strategy
to the primary table of its superclass; it is used within a
{@link SecondaryTable} annotation to join a secondary table
to a primary table; and it may be used in a {@link OneToOne}
mapping in which the primary key of the referencing entity
is used as a foreign key to the referenced entity.
If no PrimaryKeyJoinColumn annotation is
specified for a subclass in the {@link InheritanceType#JOINED
JOINED} mapping strategy, the foreign key columns are assumed
to have the same names as the primary key columns of the
primary table of the superclass
Example: Customer and ValuedCustomer subclass
@Entity
@Table(name="CUST")
@Inheritance(strategy=JOINED)
@DiscriminatorValue("CUST")
public class Customer { ... }
@Entity
@Table(name="VCUST")
@DiscriminatorValue("VCUST")
@PrimaryKeyJoinColumn(name="CUST_ID")
public class ValuedCustomer extends Customer { ... }
|