javax.persistence

## Annotation Type MapKeyEnumerated

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

  Specifies the enum type for a map key whose basic type is an enumerated type. The `MapKeyEnumerated` annotation can be applied to an element collection or relationship of type `java.util.Map`, in conjunction with the `ElementCollection`, `OneToMany`, or `ManyToMany` annotation. If the enumerated type is not specified or the `MapKeyEnumerated` annotation is not used, the enumerated type is assumed to be `ORDINAL`.

         Example:

         public enum ProjectStatus {COMPLETE, DELAYED, CANCELLED, IN_PROGRESS}

         public enum SalaryRate {JUNIOR, SENIOR, MANAGER, EXECUTIVE}

         @Entity public class Employee {
             @ManyToMany
             public Projects<ProjectStatus, Project> getProjects() {...}

             @OneToMany
             @MapKeyEnumerated(STRING)
             public Map<SalaryRate, Employee> getEmployees() {...}
             ...
         }

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

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `EnumType` | `value` (Optional) The type used in mapping a map key enum type.

- - ### Element Detail

    - #### value

          public abstract EnumType value

      (Optional) The type used in mapping a map key enum type.
      Default:
        javax.persistence.EnumType.ORDINAL

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