File: CollectionTable.java

package info (click to toggle)
eclipselink 2.7.15-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 44,708 kB
  • sloc: java: 476,807; xml: 547; makefile: 21
file content (82 lines) | stat: -rw-r--r-- 2,956 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
 * Copyright (c) 1998, 2018 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 javax.persistence.PrimaryKeyJoinColumn;
import javax.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 javax.persistence.CollectionTable
 */
@Target({METHOD, FIELD})
@Retention(RUNTIME)
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 {};
}