1 /* 2 * The contents of this file are subject to the terms 3 * of the Common Development and Distribution License 4 * (the License). You may not use this file except in 5 * compliance with the License. 6 * 7 * You can obtain a copy of the license at 8 * https://glassfish.dev.java.net/public/CDDLv1.0.html or 9 * glassfish/bootstrap/legal/CDDLv1.0.txt. 10 * See the License for the specific language governing 11 * permissions and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL 14 * Header Notice in each file and include the License file 15 * at glassfish/bootstrap/legal/CDDLv1.0.txt. 16 * If applicable, add the following below the CDDL Header, 17 * with the fields enclosed by brackets [] replaced by 18 * you own identifying information: 19 * "Portions Copyrighted [year] [name of copyright owner]" 20 * 21 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 22 */ 23 package javax.persistence; 24 25 import java.lang.annotation.Target; 26 import java.lang.annotation.Retention; 27 import static java.lang.annotation.ElementType.TYPE; 28 import static java.lang.annotation.RetentionPolicy.RUNTIME; 29 30 /** 31 * This annotation specifies the primary table for the annotated 32 * entity. Additional tables may be specified using {@link SecondaryTable} 33 * or {@link SecondaryTables} annotation. 34 * 35 * <p> If no <code>Table</code> annotation is specified for an entity 36 * class, the default values apply. 37 * 38 * <pre> 39 * Example: 40 * 41 * @Entity 42 * @Table(name="CUST", schema="RECORDS") 43 * public class Customer { ... } 44 * </pre> 45 * 46 * @since Java Persistence 1.0 47 */ 48 @Target(TYPE) 49 @Retention(RUNTIME) 50 51 public @interface Table { 52 53 /** 54 * (Optional) The name of the table. 55 * <p> Defaults to the entity name. 56 */ 57 String name() default ""; 58 59 /** (Optional) The catalog of the table. 60 * <p> Defaults to the default catalog. 61 */ 62 String catalog() default ""; 63 64 /** (Optional) The schema of the table. 65 * <p> Defaults to the default schema for user. 66 */ 67 String schema() default ""; 68 69 /** 70 * (Optional) Unique constraints that are to be placed on 71 * the table. These are only used if table generation is in 72 * effect. These constraints apply in addition to any constraints 73 * specified by the {@link Column} and {@link JoinColumn} 74 * annotations and constraints entailed by primary key mappings. 75 * <p> Defaults to no additional constraints. 76 */ 77 UniqueConstraint[] uniqueConstraints() default {}; 78 } 79