All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.persistence.JoinTable Maven / Gradle / Ivy

Go to download

Hibernate developmental JSR 317 (Java Persistence API 2.0) contracts. Used to allow incremental implementation of features on the way to full JPA 2.0 support.

The newest version!
// $Id: JoinTable.java 16130 2009-03-10 14:28:07Z hardy.ferentschik $
// EJB3 Specification Copyright 2004-2009 Sun Microsystems, Inc.
package javax.persistence;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

/**
 * This annotation is used in the mapping of associations. It is specified on the owning
 * side of a many-to-many association, or in a unidirectional one-to-many association.
 *
 * If the JoinTable annotation is missing, the default values of the annotation elements apply.
 * The name of the join table is assumed to be the table names of the associated primary tables
 * concatenated together (owning side first) using an underscore.
 *
 * @author Emmanuel Bernard
 */
@Target({METHOD, FIELD})  @Retention(RUNTIME)
public @interface JoinTable {
	/**
	 * The name of the join table.
	 *
	 * Defaults to the concatenated names of the two associated primary entity tables,
	 * separated by an underscore
	 */
	String name() default "";
	/**
	 * The catalog of the table.
	 *
	 * Defaults to the default catalog.
	 */
	String catalog() default "";
	/**
	 * The schema of the table.
	 *
	 * Defaults to the default schema for user.
	 */
	String schema() default "";
	/**
	 * The foreign key columns of the join table which reference the primary table of the
	 * entity owning the association (i.e. the owning side of the association).
	 *
	 * Uses the same defaults as for JoinColumn.
	 */
	JoinColumn[] joinColumns() default {};
	/**
	 * The foreign key columns of the join table which reference the primary table of the entity
	 * that does not own the association (i.e. the inverse side of the association).
	 *
	 * Uses the same defaults as for JoinColumn
	 */
	JoinColumn[] inverseJoinColumns() default {};
	/**
	 * Unique constraints that are to be placed on the table. These are only used if table
	 * generation is in effect.
	 *
	 * Defaults to no additional constraints
	 */
	UniqueConstraint[] uniqueConstraints() default {};
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy