javax.persistence.EmbeddedId - JPA annotation
javax.persistence
Annotation EmbeddedId
- Target:
- Fields (including property get methods)
Applied to a persistent field or property of an entity class or mapped superclass to denote a composite primary key that is an embeddable class. The embeddable class must be annotated as Embeddable.
There must be only one EmbeddedId
annotation and no Id
annotation when the EmbeddedId
annotation is used.
The AttributeOverride annotation may be used to override the column mappings declared within the embeddable class.
The MapsId annotation may be used in conjunction with the EmbeddedId
annotation to specify a derived primary key.
If the entity has a derived primary key, the AttributeOverride
annotation may only be used to override those attributes of the embedded id that do not correspond to the relationship to the parent entity.
Relationship mappings defined within an embedded id class are not supported.
Example 1:
@EmbeddedId protected EmployeePK empPK;
Example 2:
@Embeddable public class DependentId { String name; EmployeeId empPK; // corresponds to primary key type of Employee } @Entity public class Dependent { // default column name for "name" attribute is overridden @AttributeOverride(name="name", @Column(name="dep_name")) @EmbeddedId DependentId id; ... @MapsId("empPK") @ManyToOne Employee emp; }
- Since:
- JPA 1.0
- See Also:
- Embeddable
- MapsId
Learn how to define and use embedded ID fields in Chapter 2 of the ObjectDB/JPA manual.
This annotation is a marker annotation (with no elements).