Copyright (c) 2008 - 2013 Oracle Corporation. 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. Contributors: Linda DeMichiel - Java Persistence 2.1 Linda DeMichiel - Java Persistence 2.0
/******************************************************************************* * Copyright (c) 2008 - 2013 Oracle Corporation. 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. * * Contributors: * Linda DeMichiel - Java Persistence 2.1 * Linda DeMichiel - Java Persistence 2.0 * ******************************************************************************/
package javax.persistence; import java.lang.annotation.Target; import java.lang.annotation.Retention; import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.RetentionPolicy.RUNTIME;
Specifies the primary table for the annotated entity. Additional tables may be specified using SecondaryTable or SecondaryTables annotation.

If no Table annotation is specified for an entity class, the default values apply.

   Example:
   @Entity
   @Table(name="CUST", schema="RECORDS")
   public class Customer { ... }
Since:Java Persistence 1.0
/** * Specifies the primary table for the annotated entity. Additional * tables may be specified using {@link SecondaryTable} or {@link * SecondaryTables} annotation. * * <p> If no <code>Table</code> annotation is specified for an entity * class, the default values apply. * * <pre> * Example: * * &#064;Entity * &#064;Table(name="CUST", schema="RECORDS") * public class Customer { ... } * </pre> * * @since Java Persistence 1.0 */
@Target(TYPE) @Retention(RUNTIME) public @interface Table {
(Optional) The name of the table.

Defaults to the entity name.

/** * (Optional) The name of the table. * <p> Defaults to the entity name. */
String name() default "";
(Optional) The catalog of the table.

Defaults to the default catalog.

/** (Optional) The catalog of the table. * <p> Defaults to the default catalog. */
String catalog() default "";
(Optional) The schema of the table.

Defaults to the default schema for user.

/** (Optional) The schema of the table. * <p> Defaults to the default schema for user. */
String schema() default "";
(Optional) Unique constraints that are to be placed on the table. These are only used if table generation is in effect. These constraints apply in addition to any constraints specified by the Column and JoinColumn annotations and constraints entailed by primary key mappings.

Defaults to no additional constraints.

/** * (Optional) Unique constraints that are to be placed on * the table. These are only used if table generation is in * effect. These constraints apply in addition to any constraints * specified by the <code>Column</code> and <code>JoinColumn</code> * annotations and constraints entailed by primary key mappings. * <p> Defaults to no additional constraints. */
UniqueConstraint[] uniqueConstraints() default {};
(Optional) Indexes for the table. These are only used if table generation is in effect. Note that it is not necessary to specify an index for a primary key, as the primary key index will be created automatically.
Since:Java Persistence 2.1
/** * (Optional) Indexes for the table. These are only used if * table generation is in effect. Note that it is not necessary * to specify an index for a primary key, as the primary key * index will be created automatically. * * @since Java Persistence 2.1 */
Index[] indexes() default {}; }