179 words

javax.persistence.MapKeyEnumerated - JPA annotation

javax.persistence
Annotation MapKeyEnumerated

Target:
Fields (including property get methods)
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:
JPA 2.0
See Also:
ElementCollection
OneToMany
ManyToMany
(Optional) The type used in mapping a map key enum type.
(Optional) The type used in mapping a map key enum type.
Default value:
javax.persistence.EnumType.ORDINAL
Since:
JPA 2.0

This documentation page is derived (with some adjustments) from the open source JPA 2 RI (EclipseLink)
and is available under the terms of the Eclipse Public License, v. 1.0 and Eclipse Distribution License, v. 1.0.
Object Relational Mapping (ORM) JPA 2 providers include Hibernate, EclipseLink, TopLink, OpenJPA and DataNucleus.
Object DB is not an ORM JPA implementation but an Object Database for Java with built in JPA 2 support.