">Map<K,V>.">
Jakarta Persistence (JPA) Annotation Type

jakarta.persistence.MapKeyClass

Implemented Interfaces:
Annotation
Target:
Method, Field

Specifies the type of the map key for associations of type Map<K,V>. The map key can be a basic type, an embeddable class, or an entity. If the map is specified using Java generics, the MapKeyClass annotation and associated type need not be specified; otherwise they must be specified.

The MapKeyClass annotation is used in conjunction with ElementCollection or one of the collection-valued relationship annotations (OneToMany or ManyToMany). The MapKey annotation is not used when MapKeyClass is specified and vice versa.

Example 1:

 @Entity
 public class Item {
     @Id
     int id;
     ...
     @ElementCollection(targetClass = String.class)
     @MapKeyClass(String.class)
     Map images;  // map from image name to image filename
     ...
 }

Example 2:

 // MapKeyClass and target type of relationship can be defaulted

 @Entity
 public class Item {
     @Id
     int id;
     ...
     @ElementCollection
     Map images;
     ...
 }

Example 3:

 @Entity
 public class Company {
     @Id
     int id;
     ...
     @OneToMany(targetEntity = com.example.VicePresident.class)
     @MapKeyClass(com.example.Division.class)
     Map organization;
 }

Example 4:

 // MapKeyClass and target type of relationship are defaulted

 @Entity
 public class Company {
     @Id
     int id;
     ...
     @OneToMany
     Map organization;
 }
See Also:
Since:
Jakarta Persistence (JPA) 2.0

Annotation Elements

Class<?> value
(Required) The type of the map key.
Since:
Jakarta Persistence (JPA) 1.0

Additional JDK methods inherited from java.lang.annotation.Annotation

annotationType(), equals(Object), hashCode(), toString()