@Repeatable(value=SecondaryTables.class) @Target(value=TYPE) @Retention(value=RUNTIME) public @interface SecondaryTable
SecondaryTableが指定されてない場合は、エンティティのすべての永続化フィールドもしくはプロパティはプライマリテーブルにマップされるものとみなされます。
主キー結合カラムが指定されていない場合、結合カラムはプライマリテーブルの主キーのカラムを参照し、プライマリテーブルで参照された主キーのカラムと同じ名前と型を持つと見なされます。
Example 1: 単一の主キーのカラムの単一のセカンダリテーブル
@Entity
@Table(name="CUSTOMER")
@SecondaryTable(name="CUST_DETAIL",
pkJoinColumns=@PrimaryKeyJoinColumn(name="CUST_ID"))
public class Customer { ... }
Example 2: 複合主キーを使用した単一のセカンダリテーブル
@Entity
@Table(name="CUSTOMER")
@SecondaryTable(name="CUST_DETAIL",
pkJoinColumns={
@PrimaryKeyJoinColumn(name="CUST_ID"),
@PrimaryKeyJoinColumn(name="CUST_TYPE")})
public class Customer { ... }
| 修飾子とタイプ | 必須要素と説明 |
|---|---|
java.lang.String |
name
(必須) テーブルの名前。
|
| 修飾子とタイプ | 任意要素と説明 |
|---|---|
java.lang.String |
catalog
(オプション) テーブルの含まれるカタログ。
|
ForeignKey |
foreignKey
(オプション) テーブルの生成が有効なときに
pkJoinColumns要素に対応するカラムの外部キー制約の生成を指定または制御するために使用されます。 |
Index[] |
indexes
(オプション) テーブルのインデックス。
|
PrimaryKeyJoinColumn[] |
pkJoinColumns
(オプション) プライマリテーブルとの結合に使われるカラム。
|
java.lang.String |
schema
(オプション) テーブルの含まれるスキーマ。
|
UniqueConstraint[] |
uniqueConstraints
(オプション) テーブルに配置されるユニーク制約。
|
public abstract java.lang.String schema
デフォルトではユーザーにとっての規定のスキーマです。
public abstract PrimaryKeyJoinColumn[] pkJoinColumns
デフォルトではプライマリテーブルの(複数単数問わず)主キーのカラムと同じ名前のカラムになります。
public abstract ForeignKey foreignKey
pkJoinColumns要素に対応するカラムの外部キー制約の生成を指定または制御するために使用されます。
この要素とpkJoinColumns要素のいずれかにおいてのforeignKey要素が同時に指定されている場合の動作は未定義です。
いずれの場所にも外部キーアノテーション要素が指定されていない場合、永続化プロバイダのデフォルトの外部キー方式が適用されるでしょう。public abstract UniqueConstraint[] uniqueConstraints
ColumnおよびJoinColumn アノテーションで指定された制約および主のマッピングによって作られる制約とは別に適用されます。
デフォルトでは追加の制約はありません。
public abstract Index[] indexes
Translated by @megascus.