Jakarta Persistence (JPA) Annotation Type
jakarta.persistence.IdClass
- Implemented Interfaces:
Annotation
- Target:
- Type
Specifies a composite primary key type whose fields or properties map to the
identifier fields or properties of the annotated entity class. The specified primary key type must:
- be a non-
abstractregular Java class, or a Java record type, - have a
publicorprotectedconstructor with no parameters, unless it is a record type, and - implement
Annotation.java.lang.annotation.Annotation/equals(Object)andAnnotation.java.lang.annotation.Annotation/hashCode(), defining value equality consistently with equality of the mapped primary key of the database table.
The primary key fields of the entity must be annotated Id, and the specified primary key type must have fields or properties with matching names and types. The mapping of fields or properties of the entity to fields or properties of the primary key class is implicit. The primary key type does not itself need to be annotated.
Example:
@IdClass(EmployeePK.class) @Entity public class Employee { @Id String empName; @Id Date birthDay; ... } public record EmployeePK(String empName, Date birthDay) {}
- See Also:
- Since:
- Jakarta Persistence (JPA) 1.0
Annotation Elements
Class<?> value- Since:
- Jakarta Persistence (JPA) 1.0
Additional JDK methods inherited from java.lang.annotation.Annotation
annotationType(), equals(Object), hashCode(), toString()