@TargetSE(valueSE={METHODSE,FIELDSE}) @RetentionSE(valueSE=RUNTIMESE) public @interface CollectionTable
デフォルトでは、埋め込み可能クラスまたは基本型に対応するコレクションテーブルの列は、Column アノテーションのデフォルト値に従って、埋め込み可能クラスの属性または基本型から派生します。基本型の場合、列名はコレクション値フィールドまたはプロパティの名前から派生します。埋め込み可能なクラスの場合、列名は埋め込み可能なクラスのフィールドまたはプロパティ名から派生します。
ElementCollection アノテーションに加えて、コレクション値属性で Column アノテーションが使用されます。ElementCollection アノテーションに加えて、AttributeOverride および / または AttributeOverrides アノテーションを使用できます。埋め込み可能なクラスに他のエンティティへの参照が含まれている場合、それらの参照に対応する列のデフォルト値は、AssociationOverride および / または AssociationOverrides アノテーションによってオーバーライドされる場合があります。CollectionTable アノテーションがない場合、CollectionTable アノテーション要素のデフォルト値が適用されます。
Example:
@Embeddable public class Address {
protected String street;
protected String city;
protected String state;
...
}
@Entity public class Person {
@Id protected String ssn;
protected String name;
protected Address home;
...
@ElementCollection // use default table (PERSON_NICKNAMES)
@Column(name="name", length=50)
protected Set<String> nickNames = new HashSet();
...
}
@Entity public class WealthyPerson extends Person {
@ElementCollection
@CollectionTable(name="HOMES") // use default join column name
@AttributeOverrides({
@AttributeOverride(name="street",
column=@Column(name="HOME_STREET")),
@AttributeOverride(name="city",
column=@Column(name="HOME_CITY")),
@AttributeOverride(name="state",
column=@Column(name="HOME_STATE"))
})
protected Set<Address> vacationHomes = new HashSet();
...
}
ElementCollection, AttributeOverride, AssociationOverride, Column| 修飾子と型 | オプションの要素と説明 |
|---|---|
StringSE | catalog(オプション)テーブルのカタログ。 |
ForeignKey | foreignKey(オプション)テーブル生成が有効な場合に、 joinColumns 要素に対応する列の外部キー制約の生成を指定または制御するために使用されます。 |
Index[] | indexes(オプション)テーブルのインデックス。 |
JoinColumn[] | joinColumns(オプション)エンティティのプライマリテーブルを参照するコレクションテーブルの外部キー列。 |
StringSE | name(オプション)収集テーブルの名前。 |
StringSE | schema(オプション)テーブルのスキーマ。 |
UniqueConstraint[] | uniqueConstraints(オプション)テーブルに配置される一意の制約。 |
public abstract StringSE name
public abstract StringSE catalog
public abstract StringSE schema
public abstract JoinColumn[] joinColumns
JoinColumn と同じです(つまり、次の連結: エンティティの名前 ; "_" ; 参照される主キー列の名前)ただし、複数の結合列がある場合、JoinColumn JoinColumns アノテーションを使用して、各結合列にアノテーションを指定する必要があります。この場合、name 要素と referencedColumnName 要素の両方を、そのような各 JoinColumn アノテーションで指定する必要があります。public abstract ForeignKey foreignKey
joinColumns 要素に対応する列の外部キー制約の生成を指定または制御するために使用されます。この要素といずれかの joinColumns 要素の foreignKey 要素の両方が指定されている場合、動作は未定義です。どちらの場所でも外部キーアノテーション要素が指定されていない場合は、永続性プロバイダーのデフォルトの外部キー戦略が適用されます。public abstract UniqueConstraint[] uniqueConstraints
public abstract Index[] indexes
Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.