@Target(value={METHOD,FIELD}) @Retention(value=RUNTIME) public @interface EmbeddedId
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,
MapsIdCopyright © 2012 Batoo Software & Consultancy. All Rights Reserved.