/*
 * Copyright (c) 2008, 2009, 2011 Oracle, Inc. 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.
 */
package javax.persistence;

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

import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

Specifies multiple secondary tables for an entity.

   Example 1: Multiple secondary tables assuming primary key columns are named the same in all tables.
   @Entity
   @Table(name="EMPLOYEE")
   @SecondaryTables({
       @SecondaryTable(name="EMP_DETAIL"),
       @SecondaryTable(name="EMP_HIST")
   })
   public class Employee { ... }
   Example 2: Multiple secondary tables with differently named primary key columns.
   @Entity
   @Table(name="EMPLOYEE")
   @SecondaryTables({
       @SecondaryTable(name="EMP_DETAIL",
           pkJoinColumns=@PrimaryKeyJoinColumn(name="EMPL_ID")),
       @SecondaryTable(name="EMP_HIST",
           pkJoinColumns=@PrimaryKeyJoinColumn(name="EMPLOYEE_ID"))
   })
   public class Employee { ... }
Since:Java Persistence 1.0
/** * Specifies multiple secondary tables for an entity. * <p> * <pre> * Example 1: Multiple secondary tables assuming primary key columns are named the same in all tables. * * &#064;Entity * &#064;Table(name="EMPLOYEE") * &#064;SecondaryTables({ * &#064;SecondaryTable(name="EMP_DETAIL"), * &#064;SecondaryTable(name="EMP_HIST") * }) * public class Employee { ... } * * * Example 2: Multiple secondary tables with differently named primary key columns. * * &#064;Entity * &#064;Table(name="EMPLOYEE") * &#064;SecondaryTables({ * &#064;SecondaryTable(name="EMP_DETAIL", * pkJoinColumns=&#064;PrimaryKeyJoinColumn(name="EMPL_ID")), * &#064;SecondaryTable(name="EMP_HIST", * pkJoinColumns=&#064;PrimaryKeyJoinColumn(name="EMPLOYEE_ID")) * }) * public class Employee { ... } * </pre> * * @since Java Persistence 1.0 */
@Target(TYPE) @Retention(RUNTIME) public @interface SecondaryTables { SecondaryTable[] value(); }