Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT

## 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
`java.lang.Class` | `value` (Required) The type of the map key.

Element Detail

### value

    public abstract java.lang.Class value

  (Required) The type of the map key.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT