JPA注释将包括非实体超级类(来自Jar!)的字段



我正在与Spring Boot,Spring JPA一起工作,并且有以下问题:我创建了一些" B"类" B"类"从Jar中扩展了一些" A"从JAR中扩展了"从JAR中",将@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 |
+--------+                                +--------+--------+

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

edit :如果@AttributeOverride是解决方案,则如何将Overriden字段标记为Id@Id注释不能放在课堂外面?

您可以在Getter上设置@Id

@Entity
@Table(name = "B")
class B extends A {
    String fieldB;
    @Id
    @Override
    public String getFieldA() {
        return super.getFieldA();
    }
}

最新更新