假设我有一个 A 类,如下所示:
class A{
int id;
int getId(){};
void setId(int id){};
}
B类如下:
@Entity
@Table(name="B")
class B extends A{
string name;
@Column(length=20)
string getName(){}
void setName(){}
}
如何注释从 A 继承的 id 字段,以便 Hibernate/JPA 知道它是 Id 对于实体?我尝试简单地将 @Id 放在 A 中的字段上,但这没有用。我 也尝试使 A 成为一个实体,但这也没有用。
最佳答案
假设您不希望父类(super class)本身代表一个实体,您可以在父类(super class)上使用@MappedSuperclass
让子类继承属性以实现持久化:
@MappedSuperclass
class A{
int id;
@Id
int getId(){};
void setId(int id){};
}
考虑使父类(super class)抽象。参见 this section文档的更多详细信息。
关于java - 为持久性注释继承的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/418197/