java - 将注解应用于继承自@MappedSuperclass 的字段

标签 java inheritance jpa annotations mappedsuperclass

有:

@MappedSuperclass
class Superclass {

    @Id
    @Column(name = "id")
    protected long id;

    @Column(name="field")
    private long field;

}

@Entity
class Subclass extends Superclass {

}

如何在子类中用@GeneratedValue注解继承的id,用@Index注解继承的字段?

最佳答案

How to annotate inherited id with @GeneratedValue and field with @Index within Subclass?

据我所知,你不能。您可以做的是使用 AttributeOverrideAssociationOverride 注释覆盖属性和关联(即更改列或连接列)。但是您不能完全按照您的要求去做。

对于 GeneratedValue,如果您不想在映射的父类(super class)中声明它,请考虑使用 XML 映射来覆盖该策略。

对于 Index(顺便说一下,这不是标准注释),您是否真的尝试使用 Hibernate 的 Table 注释在表级别声明它(我假设您使用的是 Hibernate)?

@Table(appliesTo="tableName", indexes = { @Index(name="index1", columnNames=
    {"column1", "column2"} ) } ) 

creates the defined indexes on the columns of table tableName.

引用资料

关于java - 将注解应用于继承自@MappedSuperclass 的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3831395/

相关文章:

c# - 如何判断对象是否继承自抽象泛型类

java - 有没有办法在没有 Spring 安全的情况下使用 Spring 过滤器链?

java - 从 ResultSet java 中获取日期时间

java - 包装方法和包装类

java - Hibernate List<Object[]> 到特定对象

java - 如何正确将此 SQL case 语句转换为 JPA Criteria 查询

java - 当在 SQL 中用作别名时,将不存在的列存储在 JPA 实体中

java - Apache POI 缺少动态库 libfreetype.so

c++ - 具有多态模板参数的多态模板类

C++ 模板参数继承