Top Description Methods
jakarta.persistence

public @Interface MapKeyClass

extends Annotation
Annotations
@Target:METHOD, FIELD
@Retention:RUNTIME
Imports
java.lang.annotation.Target, .Retention

Specifies the type of the map key for associations of type java.util.Map. 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 ... }
@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<String, String> images; ... }
// MapKeyClass and target type of relationship can be defaulted

@Entity
public class Item {
    @Id
    int id;
    ...
    @ElementCollection
    Map<String, String> images;
    ...
}

Example 3:

@Entity public class Company { @Id int id; ... @OneToMany(targetEntity = com.example.VicePresident.class) @MapKeyClass(com.example.Division.class) Map organization; }
@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<Division, VicePresident> organization; }
// MapKeyClass and target type of relationship are defaulted

@Entity
public class Company {
    @Id
    int id;
    ...
    @OneToMany
    Map<Division, VicePresident> organization;
}
Since
2.0
See Also
ElementCollection, OneToMany, ManyToMany

Method Summary

Modifier and TypeMethod and Description
public Class<?>
value()

(Required) The type of the map key.

Inherited from java.lang.annotation.Annotation:
annotationTypeequalshashCodetoString

Method Detail

valueback to summary
public Class<?> value()

(Required) The type of the map key.