blob: d303d8462fc93fbc1061ea49a9279fa46ecf9083 [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.annotations;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import jakarta.persistence.PrimaryKeyJoinColumn;
import jakarta.persistence.UniqueConstraint;
/**
* A CollectionTable annotation is used in conjunction with a BasicCollection
* or a BasicMap annotation. However, if a CollectionTable is not defined, one
* will be defaulted.
*
* @see org.eclipse.persistence.annotations.BasicMap
* @see org.eclipse.persistence.annotations.BasicCollection
* @author Guy Pelletier
* @since Oracle TopLink 11.1.1.0.0
*
* @deprecated
* @see jakarta.persistence.CollectionTable
*/
@Target({METHOD, FIELD})
@Retention(RUNTIME)
@Deprecated
public @interface CollectionTable {
/**
* (Optional) The name of the collection table. If it is not specified, it
* is defaulted to the concatenation of the following: the name of the
* source entity; "_" ; the name of the relationship property or field of
* the source entity.
*/
String name() default "";
/**
* (Optional) The catalog of the table. It defaults to the persistence unit
* default catalog.
*/
String catalog() default "";
/**
* (Optional) The schema of the table. It defaults to the persistence unit
* default schema.
*/
String schema() default "";
/**
* (Optional) Used to specify a primary key column that is used as a foreign
* key to join to another table. If the source entity uses a composite
* primary key, a primary key join column must be specified for each field
* of the composite primary key. In a single primary key case, a primary key
* join column may optionally be specified. Defaulting will apply otherwise
* as follows:
* name, the same name as the primary key column of the primary table of the
* source entity.
* referencedColumnName, the same name of primary key column of the primary
* table of the source entity.
*/
PrimaryKeyJoinColumn[] primaryKeyJoinColumns() default {};
/**
* (Optional) Unique constraints that are to be placed on the table. These
* are only used if table generation is in effect.
*/
UniqueConstraint[] uniqueConstraints() default {};
}