@Target(value={TYPE,METHOD,FIELD}) @Retention(value=RUNTIME) public @interface PrimaryKeyJoinColumn
It is used to join the primary table of an entity subclass in the 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 |
|---|---|
String |
columnDefinition
(Optional) The SQL fragment that is used when generating the DDL for the column.
|
ForeignKey |
foreignKey
(Optional) The foreign key constraint specification for the join column.
|
String |
name
(Optional) The name of the primary key column of the current table.
|
String |
referencedColumnName
(Optional) The name of the primary key column of the table being joined to.
|
public abstract 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 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).public abstract String columnDefinition
OneToOne primary key association. Defaults to the generated SQL to create
a column of the inferred type.public abstract ForeignKey foreignKey
Copyright © 2020. All rights reserved.