@GeneratedValue で継承された ID に注釈を付け、サブクラス内で @Index を使用してフィールドに注釈を付ける方法は?
私の知る限り、できません。できることは、AttributeOverride
およびAssociationOverride
注釈を使用して、属性と関連付けをオーバーライドすることです (つまり、列を変更するか、列を結合します)。しかし、あなたが求めていることを正確に行うことはできません。
の場合GeneratedValue
、マッピングされたスーパークラスで戦略を宣言したくない場合は、XML マッピングを使用して戦略をオーバーライドすることを検討してください。
Index
(ちなみにこれは標準の注釈ではありません)については、代わりにHibernateの注釈を使用してテーブルレベルで実際に宣言しようとしましたかTable
(Hibernateを使用していると仮定しています)?
@Table(appliesTo="tableName", indexes = { @Index(name="index1", columnNames=
{"column1", "column2"} ) } )
テーブル tableName の列に定義済みのインデックスを作成します。
参考文献
- JPA 1.0 仕様
- 第2.1.9.2項「マップされたスーパークラス」
- 9.1.10項「AttributeOverride注釈」
- 9.1.11項「AttributeOverrides注釈」
- 9.1.12項「AssociationOverride注釈」
- 9.1.13項「AssociationOverrides注釈」
- Hibernate Annotations リファレンス ガイド