@Target(value={TYPE,METHOD,FIELD})
@Retention(value=RUNTIME)
public @interface PrimaryKeyJoinColumn
JOINED mapping strategy
to the primary table of its superclass; it is used within a
SecondaryTable annotation to join a secondary table
to a primary table; and it may be used in a 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 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 { ... }
SecondaryTable,
Inheritance,
OneToOne| Modifier and Type | Optional Element and Description |
|---|---|
java.lang.String |
columnDefinition
(Optional) The SQL fragment that is used when generating the
DDL for the column.
|
java.lang.String |
name
(Optional) The name of the primary key column of the current table.
|
java.lang.String |
referencedColumnName
(Optional) The name of the primary key column of the table
being joined to.
|
public abstract java.lang.String name
JOINED mapping strategy); the same
name as the primary key column of the primary table
(SecondaryTable mapping); or the same name as the
primary key column for the table for the referencing entity
(OneToOne mapping).public abstract java.lang.String referencedColumnName
JOINED mapping strategy); the same name
as the primary key column of the primary table
(SecondaryTable mapping); or the same name as the
primary key column for the table for the referencing entity
(OneToOne mapping).