/******************************************************************************* | |
* Copyright (c) 1998, 2009 Oracle. 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. | |
* | |
* The API for this class and its comments are derived from the JPA 2.0 specification | |
* which is developed under the Java Community Process (JSR 317) and is copyright | |
* Sun Microsystems, Inc. | |
* | |
* Contributors: | |
* pkrogh - Java Persistence API 2.0 Public Draft | |
* Specification and licensing terms available from | |
* http://jcp.org/en/jsr/detail?id=317 | |
* | |
* EARLY ACCESS - PUBLIC DRAFT | |
* This is an implementation of an early-draft specification developed under the | |
* Java Community Process (JCP) and is made available for testing and evaluation | |
* purposes only. The code is not compatible with any specification of the JCP. | |
******************************************************************************/ | |
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; | |
/** | |
* The MapKeyJoinColumn annotation is used to specify a mapping to an entity | |
* that is a map key. The map key join column is in the collection table, join | |
* table, or table of the target entity that is used to represent the map. | |
*/ | |
@Target( { METHOD, FIELD }) | |
@Retention(RUNTIME) | |
public @interface MapKeyJoinColumn { | |
/** | |
* (Optional) The name of the foreign key column for the map key. The table | |
* in which it is found depends upon the context. If the join is for a map | |
* key for an element collection, the foreign key column is in the | |
* collection table for the map value. If the join is for a map key for a | |
* ManyToMany entity relationship or for a OneToMany entity relationship | |
* using a join table, the foreign key column is in a join table. If the | |
* join is for a OneToMany entity relationship using a foreign key mapping | |
* strategy, the foreign key column for the map key is in the table of the | |
* entity that is the value of the map. | |
*/ | |
String name() default ""; | |
/** | |
* (Optional) The name of the column referenced by this foreign key column. | |
* The referenced column is in the table of the target entity. | |
*/ | |
String referencedColumnName() default ""; | |
/** | |
* (Optional) The name of the column referenced by this foreign key column. | |
* The referenced column is in the table of the target entity. | |
*/ | |
boolean unique() default false; | |
/** | |
* (Optional) Whether the foreign key column is nullable. | |
*/ | |
boolean nullable() default false; | |
/** | |
* (Optional) Whether the column is included in SQL INSERT statements | |
* generated by the persistence provider. | |
*/ | |
boolean insertable() default true; | |
/** | |
* (Optional) Whether the column is included in SQL UPDATE statements | |
* generated by the persistence provider. | |
*/ | |
boolean updatable() default true; | |
/** | |
* (Optional) The SQL fragment that is used when generating the DDL for the | |
* column. | |
*/ | |
String columnDefinition() default ""; | |
/** | |
* (Optional) The name of the table that contains the foreign key column. If | |
* the join is for a map key for an element collection, the foreign key | |
* column is in the collection table for the map value. If the join is for a | |
* map key for a ManyToMany entity relationship or for a OneToMany entity | |
* relationship using a join table, the foreign key column is in a join | |
* table. If the join is for a OneToMany entity relationship using a foreign | |
* key mapping strategy, the foreign key column for the map key is in the | |
* table of the entity that is the value of the map. | |
*/ | |
String table() default ""; | |
} |