| 
 | EclipseLink 2.0.0, build 'v20091127-r5931' API Reference | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT | |||||||||
@Target(value={METHOD,FIELD})
@Retention(value=RUNTIME)
public @interface EmbeddedId
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;
    }
 
Embeddable, 
MapsId
| 
 | EclipseLink 2.0.0, build 'v20091127-r5931' API Reference | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT | |||||||||