EclipseLink 2.2.0, build 'v20110202-r8913' API Reference

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

 

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

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.


EclipseLink 2.2.0, build 'v20110202-r8913' API Reference