Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2008, 2009 Sun Microsystems. All rights reserved.
   *
   * This program and the accompanying materials are made available under the
   * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
   * which accompanies this distribution.
   * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
   * and the Eclipse Distribution License is available at
   * http://www.eclipse.org/org/documents/edl-v10.php.
  *
  * Contributors:
  *     Linda DeMichiel - Java Persistence 2.0 - Version 2.0 (October 1, 2009)
  *     Specification available from http://jcp.org/en/jsr/detail?id=317
  */
 
 // $Id: MapKeyClass.java 20957 2011-06-13 09:58:51Z stliu $
 
 package javax.persistence;
 
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;

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
 
 
 @Target( {  })
 public @interface MapKeyClass {
(Required) The type of the map key
 
New to GrepCode? Check out our FAQ X