javax.persistence

## Annotation Type MapKeyClass

-     @Target(value={METHOD,FIELD})
      @Retention(value=RUNTIME)
      public @interface MapKeyClass

  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
             ...
          }

          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;
           }

  Since:
    Java Persistence 2.0
  See Also:
    `ElementCollection`, `OneToMany`, `ManyToMany`

- - ### Required Element Summary

    Required Elements
    Modifier and Type | Required Element and Description
    --- | ---
    `Class` | `value` (Required) The type of the map key.

- - ### Element Detail

    - #### value

          public abstract Class value

      (Required) The type of the map key.

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.