JPA注释将包含来自非实体超类的字段(来自JAR!)

时间:2017-02-15 13:55:48

标签: jpa inheritance spring-boot

我正在使用spring boot,spring JPA并遇到以下问题:我创建了一些类“B”,它从JAR扩展了一些类“A”,在类上放了@Entity@Table注释“ B“(我不能在类”A“上做同样的事情)但是当Spring / Hibernate创建表时,只包含类”B“中的字段。

// some class from JAR
// not an Entity
class A { 
    String fieldA; 
}

@Entity
@Table(name = "B")
class B extends A {
    String fieldB;
}

在数据库中创建的表

+--------+                                +--------+--------+
| fieldB |    but I want this to be made  | fieldA | fieldB |
+--------+                                +--------+--------+

如何管理?是否有一些JPA注释可以放在B级上来解决这个问题?

编辑:如果@AttributeOverride注释是解决方案,那么当Id注释无法放在课堂外时,如何将该覆盖字段标记为@Id

1 个答案:

答案 0 :(得分:0)

您可以在getter上设置@Id

@Entity
@Table(name = "B")
class B extends A {
    String fieldB;

    @Id
    @Override
    public String getFieldA() {
        return super.getFieldA();
    }
}