Copyright (c) 2008 - 2013 Oracle Corporation. 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.1 Linda DeMichiel - Java Persistence 2.0
/******************************************************************************* * Copyright (c) 2008 - 2013 Oracle Corporation. 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.1 * Linda DeMichiel - Java Persistence 2.0 * ******************************************************************************/
package javax.persistence; import java.lang.annotation.Target; import java.lang.annotation.Retention; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.ElementType.METHOD; import static java.lang.annotation.RetentionPolicy.RUNTIME; import static javax.persistence.ConstraintMode.PROVIDER_DEFAULT;
Supports composite map keys that reference entities.

The MapKeyJoinColumns annotation groups MapKeyJoinColumn annotations. When the MapKeyJoinColumns annotation is used, both the name and the referencedColumnName elements must be specified in each of the grouped MapKeyJoinColumn annotations.

See Also:
Since:Java Persistence 2.0
/** * Supports composite map keys that reference entities. * <p> The <code>MapKeyJoinColumns</code> annotation groups * <code>MapKeyJoinColumn</code> annotations. When the * <code>MapKeyJoinColumns</code> annotation is used, both the * <code>name</code> and the <code>referencedColumnName</code> * elements must be specified in each of the grouped * <code>MapKeyJoinColumn</code> annotations. * * @see MapKeyJoinColumn * @see ForeignKey * * @since Java Persistence 2.0 */
@Target( { METHOD, FIELD }) @Retention(RUNTIME) public @interface MapKeyJoinColumns {
(Required) The map key join columns that are used to map to the entity that is the map key.
/** * (Required) The map key join columns that are used to map to the entity * that is the map key. */
MapKeyJoinColumn[] value();
(Optional) Used to specify or control the generation of a foreign key constraint when table generation is in effect. If both this element and the foreignKey element of any of the MapKeyJoinColumn elements are specified, the behavior is undefined. If no foreign key annotation element is specified in either location, the persistence provider's default foreign key strategy will apply. @since Java Persistence 2.1
/** * (Optional) Used to specify or control the generation of a * foreign key constraint when table generation is in effect. * If both this element and the <code>foreignKey</code> * element of any of the <code>MapKeyJoinColumn</code> * elements are specified, the behavior is undefined. If no * foreign key annotation element is specified in either * location, the persistence provider's default foreign key * strategy will apply. * * @since Java Persistence 2.1 */
ForeignKey foreignKey() default @ForeignKey(PROVIDER_DEFAULT); }