【发布时间】:2015-03-25 09:33:50
【问题描述】:
我需要在它的超类中覆盖定义了 db 列的实体对象的 getter,因此我可以添加额外的注释。
例子:
@MappedSuperclass
public class Person {
String name;
@Column(name = "name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@Entity
@Table(name="employee")
@XmlType(name="employee")
public class Employee extends Person {
@Override
@XmlAttribute(name = "name")
public String getName() {
return super.getName();
}
}
Person 类包含多个实体的公共属性。 Employee 类扩展了 person 并定义了一个数据库表(表每类策略)。我还想将Employee 类序列化为 XML,因此我需要为其 getter 添加额外的注释,因此我将覆盖它们。
问题是,当我尝试运行此代码时,我得到一个 Hibernate MappingException 说:在 Employee 中找到名称的重复属性映射。
有没有办法告诉 Hibernate Employee 中的名称 getter 不是重复的,而是被覆盖(可能带有一些注释)。还是有其他方法可以满足我的需要?
【问题讨论】:
标签: java hibernate jpa inheritance orm