@Target(value={METHOD,FIELD})
 @Retention(value=RUNTIME)
public @interface MapKeyClass
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
       ...
    }
    Example 2:
    // 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;
     }
     Example 4:
     // MapKeyClass and target type of relationship are defaulted
     @Entity
     public class Company {
        @Id int id;
        ...
        @OneToMany
        Map<Division, VicePresident> organization;
     }
 ElementCollection, 
OneToMany, 
ManyToMany| Modifier and Type | Required Element and Description | 
|---|---|
| java.lang.Class | value(Required) The type of the map key. |