293 words
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:
EmbeddableMapsId
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).
This documentation page is derived (with some adjustments) from the open source JPA 2 RI (EclipseLink)
and is available under the terms of the Eclipse Public License, v. 1.0 and Eclipse Distribution License, v. 1.0.
and is available under the terms of the Eclipse Public License, v. 1.0 and Eclipse Distribution License, v. 1.0.
Object Relational Mapping (ORM) JPA 2 providers include Hibernate, EclipseLink, TopLink, OpenJPA and DataNucleus.
Object DB is not an ORM JPA implementation but an Object Database for Java with built in JPA 2 support.
