パッケージ jakarta.persistence
アノテーション型 CollectionTable
@TargetSE({METHODSE,FIELDSE}) @RetentionSE(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(); ... }
- 導入:
- 2.0
- 関連事項:
ElementCollection
,AttributeOverride
,AssociationOverride
,Column
- 基本型に使用される列のデフォルトプロパティを上書きするには、
オプション要素のサマリー
オプション要素 修飾子と型 オプションの要素 説明 StringSE
catalog
(オプション)テーブルのカタログ。ForeignKey
foreignKey
(オプション)テーブル生成が有効な場合に、joinColumns
要素に対応する列の外部キー制約の生成を指定または制御するために使用されます。Index[]
indexes
(オプション)テーブルのインデックス。JoinColumn[]
joinColumns
(オプション)エンティティのプライマリテーブルを参照するコレクションテーブルの外部キー列。StringSE
name
(オプション)収集テーブルの名前。StringSE
schema
(オプション)テーブルのスキーマ。UniqueConstraint[]
uniqueConstraints
(オプション)テーブルに配置される一意の制約。
要素の詳細
name
StringSE name
(オプション)収集テーブルの名前。指定しない場合、デフォルトで、含まれているエンティティの名前とコレクション属性の名前が連結され、アンダースコアで区切られます。- デフォルト:
- ""
catalog
StringSE catalog
(オプション)テーブルのカタログ。指定しない場合、デフォルトのカタログが使用されます。- デフォルト:
- ""
schema
StringSE schema
(オプション)テーブルのスキーマ。指定しない場合、ユーザーのデフォルトのスキーマが使用されます。- デフォルト:
- ""
joinColumns
JoinColumn[] joinColumns
(オプション)エンティティのプライマリテーブルを参照するコレクションテーブルの外部キー列。デフォルトは、単一の結合列が使用されている場合にのみ適用されます。デフォルトはJoinColumn
と同じです(つまり、次の連結: エンティティの名前 ; "_" ; 参照される主キー列の名前)ただし、複数の結合列がある場合、JoinColumn
JoinColumns
アノテーションを使用して、各結合列にアノテーションを指定する必要があります。この場合、name
要素とreferencedColumnName
要素の両方を、そのような各JoinColumn
アノテーションで指定する必要があります。- デフォルト:
- {}
foreignKey
ForeignKey foreignKey
(オプション)テーブル生成が有効な場合に、joinColumns
要素に対応する列の外部キー制約の生成を指定または制御するために使用されます。この要素といずれかのjoinColumns
要素のforeignKey
要素の両方が指定されている場合、動作は未定義です。どちらの場所でも外部キーアノテーション要素が指定されていない場合は、永続性プロバイダーのデフォルトの外部キー戦略が適用されます。- 導入:
- 2.1
- デフォルト:
- @jakarta.persistence.ForeignKey(jakarta.persistence.ConstraintMode.PROVIDER_DEFAULT)
uniqueConstraints
UniqueConstraint[] uniqueConstraints
(オプション)テーブルに配置される一意の制約。これらは、テーブル生成が有効な場合にのみ使用されます。- デフォルト:
- {}
indexes
Index[] indexes
(オプション)テーブルのインデックス。これらは、テーブル生成が有効な場合にのみ使用されます。- 導入:
- 2.1
- デフォルト:
- {}