我正在使用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
?
答案 0 :(得分:0)
您可以在getter上设置@Id
。
@Entity
@Table(name = "B")
class B extends A {
String fieldB;
@Id
@Override
public String getFieldA() {
return super.getFieldA();
}
}