如何在子类中用@GeneratedValue 注释继承的id 和@Index 字段?
AFAIK,你不能。您可以做的是使用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 Annotation”
- Hibernate 注释参考指南