@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.